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

问题描述 投票:1回答:2

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

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

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

谢谢

amazon-web-services aws-codepipeline aws-codebuild
2个回答
0
投票

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

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

我会用direnv代替你用.env替换你的.envrc文件进行本地开发。

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

有关更多信息,请参阅this related answer


如果您想继续使用dotenv,您有以下几种选择:

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

我确定还有其他人,但他们对我来说都很骇人听闻。


1
投票

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

phases:
  pre_build:
    commands:
      - printenv > .env

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

© www.soinside.com 2019 - 2024. All rights reserved.