如何使用aws代码构建创建特定于构建系统的环境文件

时间:2017-10-03 12:23:40

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

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

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

我在思考,我必须使用buildspec来创建和添加内容到.env文件,但不知道如何?

由于

2 个答案:

答案 0 :(得分:1)

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

phases:
  pre_build:
    commands:
      - printenv > .env

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

答案 1 :(得分:0)

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

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

我会改为使用direnv并将.env文件替换为.envrc进行本地开发。

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

请从另一个角度查看this related answer以获取更多信息。

如果您希望继续使用dotenv,可以选择以下几种方法:

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

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