目前egg-script slogs输出目录指定为 HOME下的logs目录 没有则会创建 而在生产环境上 我并没有在HOME目录下创建文件夹的权限,这个权限也不能给。但是在应用的目录创建文件的权限是有的
建议能指定egg-scripts的 logs 输出目录
目前egg-script slogs输出目录指定为 HOME下的logs目录 没有则会创建 而在生产环境上 我并没有在HOME目录下创建文件夹的权限,这个权限也不能给。但是在应用的目录创建文件的权限是有的
建议能指定egg-scripts的 logs 输出目录
Config 可以配置,请查阅文档。
你说的是egg的日志吧,那个我已经配置了。 我说的是egg-scripts的logs目录的更改。它们的配置应该不是公用的,如果文档上有说明,请帮忙指出。谢谢
看了一下node-homedir的实现 暂时我将启动命令更改为
"start": "MOCK_HOME_DIR=./mock_home egg-scripts start --daemon",
我将MOCK_HOME_DIR环境变量设置为一个我有权限的目录下,可以暂时实现我的需求,不知道这种方式有没有隐患
不是有个 stdout 和 stderr 的入参么?
https://github.com/eggjs/egg-scripts/blob/master/lib/cmd/start.js
@atian25 就算改掉了stdout,但是run
生成的json文件还是没权限写入的。尤其是在严格限制执行环境的比如gae上
run 生成的文件?这个是在项目根目录下的,GAE 应该有配置 tmp 映射的地方吧,这文件不生成,很难分析线上问题的。
eggjs可以指定run
目录吗,相对于系统路径而不是项目路径的
如果想推动这个解决,很简单。谁来梳理下,现在到底是哪些文件,导致了失败,逐个讨论就完了。
从上面的讨论,我得到的信息是,有 stdout,stderr 入参,再加上 rundir 配置,应该就没问题了吧
首先egg-script没有参数可以指定输出目录(logs文件夹位置),你给我的建议是指定 stdout,stderr 入参。我看了下实现 就算我同时指定了stdout,stderr 入参 上图标红的地方 依旧会在home下创建logs 文件夹,但我的场景是我没有在home目录下创建文件夹的权限,所以导致启动不了。
我目前的解决方案: 在你们start.js 使用了node-homedir
我看了一下node-homedir的实现:
所以我在启动的时候指定了MOCK_HOME_DIR
环境变量
"MOCK_HOME_DIR=./mock_home egg-scripts start --daemon"
暂时解决了home下没有权限的问题,但是我这么做相当于是依赖第三方的实现,如果你们后续改版 不使用node-homedir
,那么我这种临时做法就会出问题。
所以回到这个issue本身 我的需求就是可以指定这个logDir
还有 @4tj 的rundir
配置
got,明白了。
@fall-wind 可以提个 PR 直接支持下。
@fall-wind 请问现在解决了吗,要如何修改egg-script的指定输出目录(logs文件夹位置)
目前暂时在启动的命令添加一个环境变量 这是我的
"start": "MOCK_HOME_DIR=./mock_home egg-scripts start --daemon",
mock_home
是你自己建的一个文件夹
感谢,这个问题已经解决了
请问你这个写法是有哪里需要额外的配置吗?直接更改 package.json 中的 script,会出现报错
MOCK_HOME_DIR' 不是内部或外部命令,也不是可运行的程序或批处理文件。
这个issue不应该关闭吧,因为这个问题还是没有解决的。最好的方案还是应该在egg-scripts增加配置,而不是指定环境变量。 @atian25
这里windows和*nix命令不一样,他们应该是linux系统。针对这个有一个跨平台的指令,试试这样写: "start": "cross-env MOCK_HOME_DIR=./mock_home egg-scripts start --daemon",