在部署时动态更改 dockerrun.aws.json 图像标签
Posted
技术标签:
【中文标题】在部署时动态更改 dockerrun.aws.json 图像标签【英文标题】:Dynamically change dockerrun.aws.json image tag on deploy 【发布时间】:2016-03-14 15:33:06 【问题描述】:有没有办法从我的__init__.py
文件中动态获取版本标记并将其附加到 dockerrun.aws.json 图像名称例如::
"AWSEBDockerrunVersion": "1",
"Authentication":
"Bucket": "dockerkey",
"Key": "mydockercfg"
,
"Image":
"Name": "comp/app:version",
"Update": "true"
,
"Ports": [
"ContainerPort": "80"
]
当我执行eb deploy
时,它将构建正确的版本。目前我必须在每次部署时不断修改 json 文件。
【问题讨论】:
【参考方案1】:我编写了一个运行的 bash 脚本
eb deploy
在它执行该命令之前,我会根据我是在运行生产还是暂存来更改符号链接。例如:
ln -sf ../ebs/Dockerrun.aws.$deploy_type.json ../ebs/Dockerrun.aws.json
【讨论】:
【参考方案2】:我去年也偶然发现了这一点,AWS 支持人员表示手头没有这样的功能。我最终编写了一个脚本,该脚本接收 docker 标签作为参数,并使用正确的标签名即时组成 dockerrun.aws.json 文件。
【讨论】:
感谢 Tal 的想法 - 你是如何集成这个动态 dockerrun 文件的?它是签入源代码控制还是 AWS 可以提供某种挂钩?以上是关于在部署时动态更改 dockerrun.aws.json 图像标签的主要内容,如果未能解决你的问题,请参考以下文章