Docker env vars + Heroku; Heroku需要ENV,而本地构建需要ARG

时间:2018-03-25 13:37:11

标签: docker heroku

我对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 个答案:

答案 0 :(得分:1)

您可以运行类似
的内容      heroku容器:推送网络--arg SECRET_KEY = xxxSecret123

通过这种方式,您不必直接在Dockerfile中提供信息。

答案 1 :(得分:0)

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