【问题标题】:How to create an environment file specific for build system using aws code build如何使用 aws code build 创建特定于构建系统的环境文件
【发布时间】:2019-04-30 04:53:06
【问题描述】:

我从 .env 文件中获取特定于环境的变量(我正在使用 dotenv 包)。此文件不受版本控制。

使用代码管道阶段 codebuild 如何创建此 .env 文件及其内容?

我在想,我必须使用 buildspec 来创建内容并将其添加到 .env 文件,但不知道如何?

谢谢

【问题讨论】:

    标签: amazon-web-services aws-codepipeline aws-codebuild


    【解决方案1】:

    所以这实际上是一个简单的脚本,采用第一个答案的第二个选项,您可以将以下内容添加到您的 buildspec.yml:

    phases:
      pre_build:
        commands:
          - printenv > .env
    

    shell 脚本 printenv > .env 是将所有进程 env 输出到文件所需的全部内容。

    【讨论】:

      【解决方案2】:

      我的建议是摆脱 dotenv 并使用真实的环境变量。

      dotenv 的问题在于它只是在您的node 进程中模拟process.env。它并没有真正为您修改环境变量。它们在您的 node 进程之外不可用。

      我会改用direnv 并将您的.env 文件替换为.envrc 用于本地开发。

      对于 CI 和生产环境,环境变量现在已在您的 CodeBuild 项目中定义,因此不需要 .envrc 文件。

      从另一个角度了解更多信息,请参阅this related answer


      如果您希望继续使用dotenv,您有多种选择:

      • .env 文件存储在 S3 中,并在构建过程中检索它。
      • 使用在 CodeBuild 项目中定义的 shell 脚本和环境变量构造 .env 文件。

      我敢肯定还有其他人,但它们对我来说都是 hacky。

      【讨论】:

      • 感谢您的建议,如何将环境信息存储在 env parameter-store 下的 buildspec 中?
      • 是的,这正是链接的相关答案所暗示的。
      猜你喜欢
      • 1970-01-01
      • 2014-01-28
      • 1970-01-01
      • 2011-06-28
      • 2017-09-05
      • 2012-02-24
      • 1970-01-01
      • 1970-01-01
      • 2017-11-20
      相关资源
      最近更新 更多