在部署时动态更改 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 图像标签的主要内容,如果未能解决你的问题,请参考以下文章

自动部署 Elastic Beanstalk 更改

5.0.6 - 通过配置部署后更改适配器域和端口配置 - 用于开发过程中的 QA 和测试团队

角度“动态文本”

springaop动态加载不同类

在选项卡更改时动态更改 iframe 的高度?

Visual Studio:使用 SQLCMD 变量在部署时更改数据库类型