将环境variables提供给弹性beanstalk docker部署

我有一个Dockerfile,通过使用用户访问令牌从github中获取私人回购:

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

现在当我在弹性beanstalk中创build一个新的应用程序和环境时,如何在第一次尝试构buildDocker镜像和部署时如何提供具有该访问令牌的弹性beanstalk?

这可以传递给eb cli命令eb创build?

 eb create --envvars DEPLOYMENT_TOKEN=$DEPLOYMENT_TOKEN 

那么当应用程序尝试创build环境并进行部署时,它将包含环境variables,以便在构build泊坞窗图像时能够从私人回购站点获取该环境variables?

我知道eb setenv允许你在成功部署后设置一个环境variables,但是我想为docker构build过程做这个。

我不想通过使用容器描述中的环境密钥将访问令牌放在Dockerrun文件中。

 { "containerDefinitions": [ { "name": "myContainer", "image": "something", "environment": [ { "name": "MY_DB_PASSWORD", "value": "password" } ], 

因为这意味着任何人都可以获得信息,无论如何,我甚至不确定这些信息是否可行。

我也考虑过了,现在正在研究这个问题。

AWS有一篇关于这方面的文章:

微服务服务发现

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

  1. 使用S3 。
  2. 在ECS中使用领事 。
    1. 尽pipe这篇文章描述了一个容器使用Consul进行DNS查询来发现其他服务的方法 – 您也可以使用Consul作为K / V商店来存储机密信息。