将Heroku环境variables传递给Docker实例
我在Heroku上构build了一个必须在Docker容器中运行的RoR应用程序。 为此,我使用官方的Dockerfile 。 由于Heroku非常常见,我需要一些附件来使这个应用程序完全可用。 在生产中,variablesDATABASE_URL
在我的应用程序中可用。 但是,如果我尝试一些使用环境variables的其他附件(在我的情况下是Mailtrap ),则variables在运行时不会被复制到实例中。
所以我的问题很简单: 在Heroku上执行时,如何让docker实例知道环境variables?
正如你可能会问,我已经知道,我们可以在docker-compose.yml
指定一个环境指令。 我想避免这一点,以便能够通过项目库共享这个文件。
不提交敏感的configuration文件的解决方法是创build一个带有空字段的docker-compose.yml **。example **并提交它,然后将docker-compose.yml添加到.gitignore。
由于在heroku上不太实用,可以使用--env
开关将任何variables添加到容器的环境中。
像这样: docker run --env "MY_VAR=yolo" my_image:my_tag
你也可以从一个安全的站点提供一个私人docker-config.yml,这个heroku可以访问(这将是我的首选解决scheme)。
我没有find关于它的任何文档,但是看起来Heroku最近改变了它在Docker容器中处理configurationvariables的方式: 它们现在被自动复制 ( docker-compose.yml
值被忽略)。
- Dockerregistry:2.0覆盖configuration选项
- 使用sudo运行docker-compose时,在docker-compose.yml文件中进行variablesreplace
- 在Docker中访问Elastic Beanstalk环境属性
- 在与–link链接的Docker容器中访问环境variables
- ENVvariables未正确添加到容器环境
- php应用程序和docker共享单个环境文件
- 什么是为Docker设置ENVvariablesCONTENT_TRUST的最佳位置
- 如何过滤docker客户端环境variables到docker运行命令?
- 将variables从容器开始传递到文件