微软的CICD
1.完成CICD的组件叫做 Azure Devops
官方的链接:https://dev.azure.com/
Azure Devops 我们用的是微软的 - 云平台 不需要部署到本地部署到云上就可以了
第二种方式CICD 大多数企业不是微软系的 常用这个 Azure Devops jinkes
本期用的是第一种,微软的
(1)第一步创建新的项目
(2) 添加信息
(3)更改组织策略
我是勾选了这个两个
然后点创建
(4)找到蓝色小火箭 然后出现以下页面
如果没有othergit
关掉就出来了
这个地址里需要用到dockerfile 所以给他添加docker容器支持生成dockerfile文件
设置代理
下载完之后,到Xftp,把上面下载好的文件,传输到你刚刚创建的文件夹里
把你的路径写上
保存好这个令牌 只能有一个
先敲回车,然后在输入令牌
配置完代理
接下来配置devops代理 完成代理服务器拉去gitee代码 将代码打包成docker镜像
如果报错,linux 重新运行一下
代表成功了
CD
通过ssh命令连接到阿里云服务器,在服务器执行脚本,主要工能:将你的docker镜像从镜像仓库里拉去下来并且删除旧镜像运行新镜像
思路:你修改完代码会传到gitee上,然后你的dev.azure已经是监听仓库状态,所以只要代码改变她就会自动拉去仓库代码,打包成docker镜像文件,打包完之后就会归到阿里云的镜像仓库去,同时触发CD,就是把阿里云的镜像拉倒服务器删除旧镜像运行新镜像
#!/bin/bash
name="webapp01"
cid=`docker inspect --format '{{.Id}}' ${name} 2>/dev/null`
if [[ ${#cid} -gt 0 ]]; then
docker stop $name
docker rm $name
echo "successed deleted container ${name}"
fi
imageid=`docker images --format {{.ID}} $name`
echo "准备删除旧镜像${imageid}"
if [[ ${#imageid} -gt 0 ]]; then
docker rmi -f $imageid
echo "successed deleted old image ${name}"
fi
logfile="/var/log/servicelog/$name"
if [[ ! -x "$logfile" ]]; then
mkdir -p "$logfile"
echo "已成功创建日志文件夹"
else
echo "文件存夹已存在"
fi
docker pull crpi-gs8s81u1efko9jig.cn-beijing.personal.cr.aliyuncs.com/yscicd/cicdtest:latest
docker run -it -d -p 8089:80 --name webapp01 crpi-gs8s81u1efko9jig.cn-beijing.personal.cr.aliyuncs.com/yscicd/cicdtest --privileged=true
docker logs webapp01
上边是自动触发,180秒轮询一次
保存并执行
run
如果步骤没有问题
以后的每次启动先