将 Heroku 环境变量传输到 Docker 实例



我在 Heroku 上构建了一个 RoR 应用程序,该应用程序必须在 Docker 容器中运行。为此,我使用官方的Dockerfile。由于它在 Heroku 中很常见,我需要一些附加组件才能使此应用程序完全运行。在生产环境中,变量DATABASE_URL在我的应用程序中可用。但是,如果我尝试其他一些使用环境变量的附加组件(在我的例子中是 Mailtrap),则变量不会在运行时复制到实例中。

所以我的问题很简单:如何在 Heroku 上执行时让 docker 实例知道环境变量?

正如您可能会问的那样,我已经知道我们可以在docker-compose.yml中指定环境指令。我想避免这种情况,以便能够通过项目存储库共享此文件。

我没有找到任何关于它的文档,但 Heroku 最近似乎改变了它在 Docker 容器中处理配置变量的方式:它们现在会自动复制(来自docker-compose.yml的值被简单地忽略)。

不提交敏感配置文件的解决方法是创建一个带有空字段的docker-compose.yml**.example**并提交它,然后将docker-compose.yml添加到.gitignore。

由于这在 heroku 上不是很实用,因此您可以使用 --env docker 开关将任何变量添加到容器的环境中。

像这样:docker run --env "MY_VAR=yolo" my_image:my_tag

您还可以从安全站点提供私有 docker-config.yml,heroku 可以访问该站点(在您的情况下,这将是我的首选解决方案)。

最新更新