将环境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服务发现感兴趣的资源。
- 使用S3 。
- 在ECS中使用领事 。
- 尽pipe这篇文章描述了一个容器使用Consul进行DNS查询来发现其他服务的方法 – 您也可以使用Consul作为K / V商店来存储机密信息。
- ElasticBeanstalk:存放一个防弹的docker集装箱
- AWS Docker部署
- AWS Elastic Beanstalk更改已加载目录的权限
- 在Dockerrun源码包中部署AWS Elastic Beanstalk Docker部署中的ebextensionsconfiguration的位置?
- 对于Web应用程序,为模板和api服务器分配两个容器是否有意义?
- 使用Single容器configuration向Dockerrun.aws.json添加portMappings
- 如何通过Elasticbeanstalkconfiguration文件(使用Docker)访问环境variables?
- 在Amazon Elastic Beanstalk上使用Docker部署Django
- AWS上的Docker在以某种方式运行时填充其精简池?