Docker环境变量+Heroku;Heroku需要ENV而本地构建需要ARG。

7
我的理解是,Heroku的Docker容器注册表CLI是Docker cli的包装器。
当我在本地构建时,我会使用例如:docker build -f Dockerfile.example --build-arg SECRET_KEY=abc。 我会在我的Dockerfile.example中设置ARG SECRET_KEY
但是,如果我想要推送到Heroku的Docker容器注册表,我发现需要在我的Dockerfile.example中声明ENV SECRET_KEY=abc,然后运行命令heroku container:push example --recursive
为什么会这样?它们有什么区别?硬编码ENV不是不安全吗?Heroku有没有提供绕过此问题的方法?
2个回答

5
你可以运行类似于
heroku container:push web --arg SECRET_KEY=xxxSecret123 的命令。这样,你就不需要直接在 Dockerfile 中提供信息。

如果您有Heroku Review,不想每次创建审查应用程序时都传递参数怎么办? - diegocl02

0

配置变量(每个应用程序)将覆盖您在Dockerfile中硬编码的任何值。在Dockerfile中放置占位符值(个人喜好:notsecret),并在Heroku UI或CLI上设置实际的机密值。


你的意思是在配置变量中设置密码?但据我所知,在 Docker 构建期间它们是不可用的。 - diegocl02
那行不通,Docker 无论如何都看不到环境变量。 - Alexander P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接