Docker环境变量+ Heroku; Heroku需要ENV,而本地版本需要ARG

Cas*_*per 5 heroku docker

我对Heroku的Docker容器注册表CLI的理解是,它是Docker CLI的包装。

当我建立本地我会使用,例如:docker build -f Dockerfile.example --build-arg SECRET_KEY=abc。我将ARG SECRET_KEY在Dockerfile.example中进行设置。

但是,如果我想推送到heroku的docker container-registry,我发现我需要ENV SECRET_KEY=abc在Dockerfile.example中声明,然后运行命令heroku container:push example --recursive

为什么会这样呢?是什么使它们与众不同?难道不是对ENV的不良安全做法进行硬编码?Heroku是否提供解决方法?

Sud*_*mar 5

你可以运行像
heroku容器这样的东西:push web --arg SECRET_KEY=xxxSecret123

这样,您就不必直接在 Dockerfile 中提供信息。