AWS CodePipeline 和 Codebuild - 如何将环境变量添加到 Docker-Image?

AWS CodePipline & Codebuild - How to add environment variables to the Docker-Image?

感谢任何帮助。

我将 AWS-CodePipline 与 AWS-CodeBuild 结合使用(用于我的 Docker 文件并将其保存在 ECR 中)。到目前为止它正在工作。但是我不知道如何在项目中获取环境变量。所以我将我的 Github 帐户与 CodePipline 连接起来,为了安全起见,我没有将我的环境推送到 Github。所以现在我在 Github 上有一个像这样的环境文件:

config/prod.env

ACCESS_TOKEN_SECRET=
CSRF_TOKEN_SECRET=
ACCESS_TOKEN_PASSWORD=
REFRESH_TOKEN_SECRET=
CLUDINARY_API=
CLUDINARY_API_SECRET=
CLUDINARY_API_NAME=
GOOGLE_AUDIENCE=
ORIGIN=
GOOGLE_TOKEN=
DATABASE_URL=
NODE_ENV=
FORGOTTEN_PASSWORD=
YAHOO_PASSWORD=

现在 AWS-CodeBilder 上有一个环境变量部分(图片来自 AWS-Doc)。

现在我觉得这不是 env 的正确位置。因为如果我将所有变量都放在字段中,我会收到错误消息:

ValidationException
1 validation error detected: Value at 'pipeline.stages.2.member.actions.1.member.configuration' failed to satisfy constraint: Map value must satisfy constraint: [Member must have length less than or equal to 1000, Member must have length greater than or equal to 1]

示例:

Name: ACCESS_TOKEN_SECRET
Value: My_SUPER_PASSWORD

如果我只使用几个变量,我不会收到错误,但对于所有变量,我都会收到错误(与环境组合无关)。 我做错了什么?如何使用 CodeBuild 和 CodePipline 将我的环境变量添加到我的 Docker-ECR 图像?

要从 Code Build Project 传递变量,您需要在 buildspec.yml 文件中设置 env: 部分,例如

env:
  variables:
    Execution_ID: $Execution_ID
    Commit_ID: $Commit_ID