【发布时间】:2017-06-25 12:03:01
【问题描述】:
我们在 codebuild 过程中需要环境变量。 Codebuild 允许您在高级设置中设置环境变量,我已经这样做了。
现在,当 codebuild 运行时,它似乎不会向下传递这些环境变量。
我打印出了 process.env,这是我得到的:
NAME: '037fga72',
[Container] 2017/02/08 01:55:03 NPM_CONFIG_LOGLEVEL: 'info',
[Container] 2017/02/08 01:55:03 PATH: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
[Container] 2017/02/08 01:55:03 PWD: '/usr/src/app',
[Container] 2017/02/08 01:55:03 SHLVL: '1',
[Container] 2017/02/08 01:55:03 HOME: '/root',
[Container] 2017/02/08 01:55:03 _: '/usr/local/bin/knex' } 'process.env variables...'
没有我的环境变量。
我设置了 DB_PASS、DB_USER、DB_NAME、DB_HOST - 这些都没有打印出来。
我尝试创建一个新的代码构建并添加环境变量,但没有成功。
请注意,它正在构建一个 docker 容器,当我尝试连接到我的 postgres 数据库时它会失败,因为没有传递环境变量(密码、主机等)
编辑
在我的 Dockerfile 中,我正在运行以下 bash 文件:
#!/bin/bash
echo "running"
function mytest {
"$@"
local status=$?
if [ $status -ne 0 ]; then
knex migrate:rollback
echo "Rolling back knex migrate $1" >&2
exit 1
fi
return $status
}
mytest knex migrate:latest
这是在运行 knex 迁移(一个 js 脚本)——如果失败,我们将回滚迁移并退出构建。
【问题讨论】:
标签: amazon-web-services docker aws-codepipeline aws-codebuild