【问题标题】:Heroku.yml file. How to pass environment variables from .env file?Heroku.yml 文件。如何从 .env 文件传递​​环境变量?
【发布时间】:2021-11-19 12:33:33
【问题描述】:

我一直在寻找这个解决方案,但目前有关 heroku.yml 文件的文档非常有限。

我有这个 heroku.yml 文件:

build:
  docker:
    web: Dockerfile
  config:
    SECRET_KEY: django-secret-key

setup:

  addons:
  - plan: heroku-postgresql
    as: DATABASE
  config:
    DB_NAME: database-name

我在.env 文件中有我的环境变量。我不希望任何人访问它们。这个.env 文件被添加到.gitignore.dockerignore 文件中。问题是,如果我将它们硬编码到 heroku.yml 文件,它们将可以从 gitdocker 容器

访问

我的问题是下一个,有没有办法将这些环境变量从.env 文件传递​​到heroku.yml 文件而不用硬编码?

【问题讨论】:

    标签: heroku environment-variables


    【解决方案1】:

    您需要在heroku.yml 中将env_file: .env 添加到setup.config,然后在设置中将您的配置变量添加到heroku

    我的heroku.yml示例

    setup:
      config:
        env_file: .env # <-- important line
    build:
      docker:
        web: Dockerfile
    run:
      web: npm run start
    

    这个heroku.yml 应该适合你:

    setup:
      addons:
      - plan: heroku-postgresql
        as: DATABASE
      config:
        env_file: .env
    build:
      docker:
        web: Dockerfile
    

    【讨论】:

    • env_file: .env 是做什么的?如果配置变量没有出现在 Heroku 上,我认为它没有任何作用。
    【解决方案2】:

    您的.env 不应提交,因此 Heroku 将无法访问它。您通常会手动或通过 CLI 一个接一个地设置环境变量。您可以从 .env 文件自动设置它们:

    xargs -a .env -I {} heroku config:set {}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-02
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      • 1970-01-01
      • 2020-06-09
      • 1970-01-01
      • 2019-10-17
      相关资源
      最近更新 更多