将 Heroku 环境变量传输到 Docker 个实例
Transmit Heroku environment variables to Docker instance
我在 Heroku 上构建了一个 RoR 应用程序,它必须 运行 在 Docker 容器中。为此,我在本例中使用 official Dockerfile. As it is very common with Heroku, I need a few add-ons to make this app fully operational. In production the variable DATABASE_URL
is available within my app. But if I try some other add-ons that use environment variables (Mailtrap),在 运行 时间期间不会将变量复制到实例中。
所以我的问题很简单:如何让 docker 个实例在 Heroku 上执行时知道环境变量?
如您所问,我已经知道我们可以在 docker-compose.yml
中指定一个 environment 指令。我想避免这种情况,以便能够通过项目存储库共享此文件。
不提交敏感配置文件的解决方法是创建一个 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 可以访问(在您的情况下,这将是我的首选解决方案)。
我没有找到任何关于它的文档,但似乎 Heroku 最近改变了它在 Docker 容器中处理 config vars 的方式:它们现在自动复制(来自 docker-compose.yml
的值将被忽略)。
我在 Heroku 上构建了一个 RoR 应用程序,它必须 运行 在 Docker 容器中。为此,我在本例中使用 official Dockerfile. As it is very common with Heroku, I need a few add-ons to make this app fully operational. In production the variable DATABASE_URL
is available within my app. But if I try some other add-ons that use environment variables (Mailtrap),在 运行 时间期间不会将变量复制到实例中。
所以我的问题很简单:如何让 docker 个实例在 Heroku 上执行时知道环境变量?
如您所问,我已经知道我们可以在 docker-compose.yml
中指定一个 environment 指令。我想避免这种情况,以便能够通过项目存储库共享此文件。
不提交敏感配置文件的解决方法是创建一个 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 可以访问(在您的情况下,这将是我的首选解决方案)。
我没有找到任何关于它的文档,但似乎 Heroku 最近改变了它在 Docker 容器中处理 config vars 的方式:它们现在自动复制(来自 docker-compose.yml
的值将被忽略)。