将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值被忽略)。