docker-compose引用外部shell的值,下载镜像动态版本

36 篇文章 0 订阅

docker-compose引用环境变量一般都可用了,现在说下引用外部shell的值,没有用到k8s等管理工具不然回滚都是ui一键的事,每一次删除旧latest,下载新latest ,最后附还有一种把tag打回来

备份脚本bk.sh

#/bin/sh
TAGback=`date +%Y%m%d-%H%M%S`        #这里可以把%s或者-去掉,很少秒级更新版本吧
TAGlast=latest
NAME=busybox
docker tag ${NAME}:${TAGlast} 123.com/${NAME}:${TAGback}
docker push 123.com/${NAME}:${TAGback}
echo ${TAGback} > /app/back/date.sh

执行bk.sh,上传镜像后,把刚刚的123.com/busybox:20201221-153742本地镜像删除:docker rmi 123.com/busybox:20201221-153742

cat  date.sh

20201221-153742

env.sh

#!/bin/sh
export i_version=$(cat /app/back/date.sh)

rollback.yml

version: '2.0'

services:
   gateway:
    container_name: gateway-1
    image: 123.com/busybox:${i_version}

    # environment:
    env_file:
      - /app/back/common.env
    hostname: gateway

 

第一步

执行 docker-compose 命令前先执行 source 命令把 shell 脚本中定义的环境变量导出到当前的 shell 中

source env.sh 

检查下结果,验证i_version的值等于20201221-153742

docker-compose -f rollback.yml config

services:
  gateway:
    container_name: gateway-1

   environment:

      xx:xx
    hostname: gateway-115
    image: 123.com/busybox:20201221-153742
version: '2.0'

 

第二步

执行 docker-compose 命令

docker-compose -f rollback.yml up -d

Pulling gateway (123.com/busybox:20201221-153742)...
20201221-153742: Pulling from busybox
Creating gateway-1 ... done
Attaching to gateway-1
gateway-1 exited with code 0

查看docker images 下镜像已有

伪动态下载镜像完成!

完善真动态大佬们自己写,一般截取值的问题

附:

#!/bin/sh
#一键回滚最新备份
TAGback=$(cat /app/back/date.sh)
docker-compose -f rollback.yml  stop
docker-compose -f rollback.yml rm -f
docker rmi 123.com/busybox:latest
docker tag 123.com/busybox:${TAGback} 123.com/busybox:latest
docker-compose -f rollback.yml up -d

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值