
Jenkins + Gitlab + Harbor 容器自动化部署
jenkins + gitlab + harbor 容器自动化部署
推送代码至Git服务器 => 触发Jenkins服务器配置的Git Web Hooks =>
从Git服务器中pull或clone代码 => 将代码编译成二进制可执行文件 =>
构建docker镜像 => 上传docker镜像至镜像仓库 =>
从Jenkins服务器进入远程应用服务器 => 从docker镜像仓库中拉取镜像 =>
停止并删除该项目正在运行的docker容器 => 使用该新镜像构建并启动docker容器 =>
删除其他旧版本镜像 => 完成
安装Jenkins
安装Gitlab
准备harbor仓库
- 查看 部署Harbor镜像仓库.txt
jenkins 安装CloudBees docker Build and Publish插件
配置项目:
项目–设置–构建:
Docker Build and Publish
docker jenkins 安装go环境
jenkins安装go plugin
宿主机:
cd /data/app/jenkins &&
wget https://go.dev/dl/go1.18.linux-amd64.tar.gz &&
tar xf $_
进入容器
docker exec -it docker ps | grep jenkins | awk '{print $1}'
/bin/bash
mv /var/jenkins_home/go /usr/local/
cat >> /etc/profile <<EOF
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPROXY=”https://goproxy.cn,direct“
EOF
source /etc/profile
容器使用公网ip SNAT
1 | firewall-cmd --permanent --direct --passthrough ipv4 -t nat POSTROUTING -o ens192 -j MASQUERADE -s <internal_ip|internal_net/mask> |
Jenkins配置邮件告警
邮箱授权码
tab.liu@wangtengcloud.com
u0ZsTkZyLjIwAyw8
邮箱地址
tab.liu@wangtengcloud.com
收信服务器(IMAP)
imap.feishu.cn
使用 SSL,端口号:993
发信服务器(SMTP)
smtp.feishu.cn
使用 SSL,端口号:465
jenkins gitlab 密钥配对
1 | ## jenkins 容器生成密钥 |
gitlab添加jenkins的公钥
web: gitlab - ssh密钥
root@d0aa882b2f43:/# cat /root/.ssh/id_rsa.pub
jenkins将私钥添加到web端
web: 系统管理 - Manage Credentials - jenkins - 添加域 - 添加凭据
root@d0aa882b2f43:/# cat /root/.ssh/id_rsa