eggjs 指定运行环境方式
框架有两种方式指定运行环境:
1.通过 config/env 文件指定,该文件的内容就是运行环境,如 prod。一般通过构建工具来生成这个文件。
2.通过 EGG_SERVER_ENV 环境变量指定。
其中,方式 2 比较常用,因为通过 EGG_SERVER_ENV 环境变量指定运行环境更加方便,比如在生产环境启动应用:
EGG_SERVER_ENV=prod npm start
配合 Docker 使用
使用 Egg 文档中的思想,配置即代码。需要预先编写好配置文件,通常来说,我们实际开发的工程不只一个环境,
为了实现一次构建,多次部署,需要将 app 打包成镜像,egg-script 启动脚本把环境写死就显得不那么灵活了。需要对上文那种启动写法进行一些调整。
我的做法是在Dockerfile设置默认启动命令
CMD yarn start
在启动容器的时候传入环境参数
docker run -e EGG_SERVER_ENV=uat yourimagename
这样容器启动的时候就可以将这个变量传递给应用
以上