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

pkp*_*kpk 5 amazon-web-services aws-codepipeline aws-codebuild

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

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

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

谢谢

小智 6

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

phases:
  pre_build:
    commands:
      - printenv > .env
Run Code Online (Sandbox Code Playgroud)

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


das*_*mug 2

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

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

我会使用direnv并替换您的.env文件以.envrc进行本地开发。

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

请参阅此相关答案以从另一个角度了解更多信息。


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

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

我确信还有其他人,但他们对我来说都很老套。