5

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

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

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

谢谢

4

2 回答 2

6

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

phases:
  pre_build:
    commands:
      - printenv > .env

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

于 2018-01-13T00:21:31.733 回答
1

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

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

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

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

请从另一个角度查看此相关答案以获取更多信息。


如果您想继续使用dotenv,您有几个选择:

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

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

于 2017-10-03T12:38:40.743 回答