我有一个 Node express 服务器,它使用
dotenv
将变量从 .env
加载到服务器中,例如 SERVER_URL
。
我有两个环境,
qa
和production
。
我的仓库中有两个分支;他们使用 AWS CodePipeline 将分支
qa
放到 qa
弹性豆茎上,将 production
放在 production
EB 上。
在我的主分支中我有两个 .env 文件
.env
.env.qa
.env.production
在我的本地机器上,它加载 .env,就像在这两个 EB 实例上一样,但是……
我希望它用 .env.qa 的内容替换 .env 如果它是 qa 和 .env.production 重命名或替换 .env
我尝试将 mv-f 作为 eb.config 文件,但我使用的是 sh 文件来执行此操作,但由于路径不同而无法使其工作 abd 这是一个 10 分钟的构建来尝试每个配置更改以实现它工作。
将变量保存在分支中、设置 CD 并理想地使用不同的 .env 文件的最佳方法是什么?
mv -f 的命令我被告知需要权限,但它让我不知道脚本等是否需要权限。
我的环境文件在根目录中。
解决这个问题的最佳方法是什么?
(一次尝试是)
.ebextensions/eb.config
container_commands:
set_env_vars:
command: "source envconfig.sh"
在 .ebextensions/envconfig.sh 中
#!/bin/bash
if [ "$NODE_ENV" = "production" ]
then
mv -f .env.production .env
elif [ "$NODE_ENV" = "qa" ]
then
mv -f .env.qa .env
else
mv -f .env.default .env
fi
我的 .env.qa、.env.production、.env.default 等都在根目录中(package.json 所在的位置)