我对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能解决这个问题吗?
答案 0 :(得分:1)
您可以运行类似
的内容
heroku容器:推送网络--arg SECRET_KEY = xxxSecret123
通过这种方式,您不必直接在Dockerfile中提供信息。
答案 1 :(得分:0)
(每个应用程序)配置vars覆盖您在Dockerfile中硬编码的任何值。在您的Dockerfile中放置一个占位符值(个人喜好:notsecret
),并在Heroku UI或CLI上设置实际的秘密值。