通过jenkins实现持续发布
===============================================
2020/12/22_第2次修改 ccb_warlock
更新说明:
2020/12/22:
1.重新整理步骤,更正了描述不正确的内容;
===============================================
可以选择一些免费的镜像仓库(dockerhub、阿里云等等)用于存放构建的镜像。如果需要搭私有仓库可以选择搭建harbor(https://www.cnblogs.com/straycats/p/8850693.html)
这里选择了阿里云(registry.cn-beijing.aliyuncs.com)作为镜像仓库
sudo yum install -y git
2.3 安装.net core
centos7上部署参考https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos
2.4 创建rsa证书
因为我拉取git常用ssh,故需要在builder服务器上创建rsa证书,通过公钥拉源码。
sudo ssh-keygen -t rsa
接着将公钥(/root/.ssh/id_rsa.pub)的内容贴到git账号中。
这里将dev分支的源码拷贝到目录/opt/src下。
sudo mkdir -p /opt/src cd /opt/src sudo git clone -b dev <git项目地址>
sudo mkdir -p /opt/publish/abc/published
sudo mkdir -p /opt/build/abc sudo vi /opt/build/abc/build.sh
# 将下面的内容保存到build.sh中。
#!/bin/bash src_dir="/opt/src/abc" publish_dir="/opt/publish/abc/published" echo "==> Begin build project <==========" cd $src_dir sudo git checkout dev sudo git pull #commit_id_old=`git rev-parse HEAD` #sudo git pull #commit_id_current=`git rev-parse HEAD` #if [ $commit_id_old = $commit_id_current ];then # echo "==> Branch dev has not changed, exit <==========" # exit 1 #fi sudo rm -rf $publish_dir sudo mkdir -p $publish_dir sudo dotnet publish -o $publish_dir echo "==> End build project <==========" echo "==> Begin build image <==========" # Dockerfile文件放在源码的Server目录下 sudo yes| cp -rf $src_dir"/Server/Dockerfile" /opt/publish/abc cd /opt/publish/abc sudo docker build --rm -t registry.cn-beijing.aliyuncs.com/abc/abc:latest . sudo docker push registry.cn-beijing.aliyuncs.com/abc/abc:latest echo "==> End build image <==========" echo "==> Begin deploy stack <==========" # 这里通过docker swarm来部署 cd /opt/docker/compose/abc sudo docker stack rm abc-stack sudo docker stack deploy -c abc-stack.yml abc-stack echo "==> End deploy stack <=========="
三、部署jenkins服务器
3.1 部署jenkins服务器
参考:https://www.cnblogs.com/straycats/p/14033405.html
3.2 安装插件Publish Over SSH
sudo ssh-keygen -t rsa cd /root/.ssh sudo cp id_rsa.pub id_rsa.pub.jenkins
这样,在/root/.ssh下生成id_rsa(私钥) 和 id_rsa.pub (公钥)两个文件。
sudo mkdir -p /root/.ssh sudo touch /root/.ssh/authorized_keys
cd /root/.ssh sudo cat id_rsa.pub.jenkins >> /root/.ssh/authorized_keys
3.5 添加SSH服务器
1)"系统管理" - "系统配置" - “Publish over SSH”一栏,将jenkins服务器的SSH私钥(/root/.ssh/id_rsa)填到Key中。
3.6 创建jenkins任务
1)点击“新建任务”
2)构建环境,勾选“Add timestamps to the Console Output”
3.7 执行任务
1)点击任务进入任务界面。
2)点击“立即构建”,该任务就会执行一次。