amazon-web-services - 为弹性beantalk docker部署提供环境变量

标签 amazon-web-services docker amazon-elastic-beanstalk

我有一个 Dockerfile,它使用用户访问 token 从 github 中提取一个私有(private)仓库:

ARG DEPLOYMENT_TOKEN
RUN git clone https://$DEPLOYMENT_TOKEN:x-oauth-basic@github.com/company-org/api.git /tmpapp/

现在,当我在弹性 beantalk 中创建一个新应用程序和环境时,如何在弹性 beantalk 首次尝试构建 docker 镜像和部署时为它提供该访问 token ?

这可以传递给 eb cli 命令 eb create 吗?
eb create --envvars DEPLOYMENT_TOKEN=$DEPLOYMENT_TOKEN

那么当应用程序尝试创建环境并部署时,它将包含环境变量,以便在构建 docker 镜像时能够从私有(private)存储库中提取?

我知道 eb setenv 允许您在成功部署后设置环境变量,但我想为 docker 构建过程执行此操作。

我不想通过使用容器描述中的环境键将访问 token 放入 Dockerrun 文件中。
{
  "containerDefinitions": [
    {
      "name": "myContainer",
      "image": "something",
      "environment": [
        {
          "name": "MY_DB_PASSWORD",
          "value": "password"
        }
      ],

因为这意味着任何人都可以使用该信息,而且无论如何我都不确定这是否可行。

我也考虑过.ebextensions,现在正在研究。

最佳答案

AWS 对此有一篇文章:

Microservices Service Discovery

我发现了更多可能对配置服务发现感兴趣的资源。

  • 使用 S3 .
  • 使用 Consul in ECS .
  • 虽然这篇文章描述了容器使用 Consul 进行 DNS 查询以发现其他服务的方法 - 您也可以将 Consul 用作 K/V store存储 secret 信息。
  • 关于amazon-web-services - 为弹性beantalk docker部署提供环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37067701/

    相关文章:

    amazon-web-services - CloudFormation cfn-init.exe 命令

    docker - 如何将 RBAC 权限分配给系统 :anonymous service account in Kubernetes?

    postgresql - 从 docker 外部的客户端连接到 postgres 对用户 postgres 进行了致命密码身份验证

    windows - Windows 防火墙后的 Docker 安装错误

    java - 有没有办法确定 Elastic Beanstalk 上 Tomcat 环境的 URL 是什么?

    amazon-web-services - Travis CI 部署 : invalid option "--secret_access_key="

    amazon-ec2 - 在一个 AWS EC2 实例(Elastic Beanstalk)上运行多个环境

    amazon-web-services - 如何将过滤器与 boto3 vpc 端点服务结合使用?

    amazon-web-services - 属性 Roles 的值必须是 String || List 类型AWS SAM

    amazon-web-services - 用于用户存储的 S3 或 DynamoDb?