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

How to create an environment file specific for build system using aws code build

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

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

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

谢谢

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

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

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

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

请从另一个角度了解更多信息


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

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

我敢肯定还有其他人,但他们对我来说都很老套。

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

phases:
  pre_build:
    commands:
      - printenv > .env

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