Gitlab+Harbor+Jenkins pipeline实现利用tag部署docker容器

时间:2018-11-15 19:21:51   收藏:0   阅读:547
环境
测试部署主机IP:192.168.1.1
Jenkins主机IP:192.168.1.2
Harbor主机IP:192.168.1.3
Gitlab主机IP:192.168.0.10

系统信息:
    系统:CentOS 7.5
    内核:4.18.7-1.el7.elrepo.x86_64
    Docker版本:18.09
    docker-compose版本:1.23.1

有道笔记原文,为了防止复制粘贴出来的代码格式有误~~~~

所有主机的Docker安装方式

wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum install -y docker-ce

mkdir /etc/docker/
cat << EOF > /etc/docker/daemon.json
{   "registry-mirrors": ["https://registry.docker-cn.com"],
    "live-restore": true,
    "default-shm-size": "128M",
    "max-concurrent-downloads": 10,
    "oom-score-adjust": -1000,
    "debug": false
}   
EOF
systemctl enable docker
systemctl restart docker

安装Gitlab


安装Harbor


安装Jenkins

yum install -y python-pip
pip install docker-compose

cd $HOME && mkdir jenkins && cd jenkins
wget https://raw.githubusercontent.com/JyBigBoss/docker-compose/master/jenkins/Dockerfile
wget https://raw.githubusercontent.com/JyBigBoss/docker-compose/master/jenkins/docker-compose.yaml

docker-compose up -d
Gitlab Hook、Build Authorization Token Root、Publish Over SSH、Gitlab Authentication
Gitlab、Git Parameter、Git Tag Message、Pipeline、docker-build-step、Docker Pipeline

创建git仓库

cd $HOME
git clone git@192.168.0.10:yfg/test.git
cd test/
cat << EOF > index.html
<h1>Test 123</h1>
EOF
git add .
git commit -m ‘add index.html‘
git push

#创建两个tag
git tag v1 -m ‘version:1‘
git push --tags
git tag v2 -m ‘version:2‘
git push --tags

技术分享图片
技术分享图片
技术分享图片


在Harbor上创建一个test仓库

技术分享图片


配置Jenkins


  #!/bin/bash
  echo ‘正在更新版本......‘

  cd /root/deploy

  IMAGE_NAME=‘registry.lotbrick.com/test/http‘
  DOCKER_TAG=`awk -F ‘:‘ ‘/.*image/{print $NF}‘ docker-compose.yaml`

  echo -e "\n"
  docker-compose pull && docker-compose up -d

  if [  "$?" == 0 ];then
      echo ‘删除旧的image‘
      OLD_IMAGE=`docker images | grep $IMAGE_NAME | awk ‘{print $2,$3}‘ | grep -v "${DOCKER_TAG}" |awk ‘{print $1}‘`
      for i in $OLD_IMAGE;do
          docker rmi http:$i
      done
  else
     echo "更新版本失败!!!"
     exit 111
  fi

测试发布

技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片

#感觉没玩够,再传个代码测试一回

cd $HOME
git clone https://github.com/HFIProgramming/mikutap.git

\cp -r mikutap/* test/

cd test
git add .
git commit -m ‘add mikutap page‘
git tag v3 -m ‘add mikutap page‘
git push --tags

技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片

原文:http://blog.51cto.com/bigboss/2317324

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!