【问题标题】:AWS CodePipline & Codebuild - How to add environment variables to the Docker-Image?AWS CodePipeline 和 Codebuild - 如何将环境变量添加到 Docker-Image?
【发布时间】:2021-02-21 20:07:02
【问题描述】:

感谢任何帮助。

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

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

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

【问题讨论】:

  • 产生您报告的错误的代码是什么?
  • 如果我将变量放在 CodeBuild 的环境变量部分,我会在 aws 中收到错误。

标签: amazon-web-services docker amazon-ec2 deployment environment-variables


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回答,但您在哪里定义 $Execution_ID 和 $Commit_ID?
  • 在代码构建项目中,和你一样
猜你喜欢
  • 1970-01-01
  • 2019-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-12
  • 2017-06-25
  • 2020-11-14
  • 2018-07-18
相关资源
最近更新 更多