基于gitlab+jenkins+docker+harbor,CI/CD

参考:

Centos7安装docker:

Centos7安装docker_大板鲫的博客-CSDN博客

Centos7安装docker-compose:

Centos7安装docker-compose_大板鲫的博客-CSDN博客_centos7 docker-compose

Centos7安装Git:

Centos7安装Git_大板鲫的博客-CSDN博客

Centos7安装gitlab: 

https://blog.csdn.net/qq_41062545/article/details/125773094?spm=1001.2014.3001.5502

Centos7安装jenkins:

Centos7安装配置jenkins_大板鲫的博客-CSDN博客_centos jenkins安装

Centos7安装Harbor:

https://blog.csdn.net/qq_41062545/article/details/125859577?spm=1001.2014.3001.5502


 一、gitlab准备测试项目mytest-harbor

下载地址:mytest-harbor: mytest-harbor

基于gitlab+jenkins+docker+harbor,CI/CD_第1张图片

 准备Dockerfile 文件

基于gitlab+jenkins+docker+harbor,CI/CD_第2张图片

 Dockerfile

FROM daocloud.io/library/java:8u40-jdk
COPY mytest-docker-compose.jar /usr/local/
WORKDIR /usr/local
CMD java -jar mytest-docker-compose.jar

二、测试服务器配置执行脚本文件

cd ~
vi deploy.sh

  deploy.sh文件内容: 

#harbor地址
harbor_addr=$1
#仓库名称
harbor_repo=$2
#项目名称
project=$3
#版本标签
version=$4
#宿主机端口
host_port=$5
#映射端口
container_port=$6


#harbor镜像地址
imageName=$harbor_addr/$harbor_repo/$project:$version
#容器id
containerId=`docker ps -a | grep ${project} | awk '{print $1}'`

#如果容器正在运行,先停止,后删除
if [ "$containerId" != "" ] ; then
  docker stop $containerId
  docker rm $containerId
  echo "Delete Container Success"
fi

#镜像tag版本
tag=`docker images | grep ${project} | awk '{print $2}'`

#如果此版本镜像存在则删除
if [[ "$tag" =~ "$version" ]] ; then
  docker rmi -f $imageName
  echo "Delete Image Success"
fi

#登录harbor
docker login -u admin -p Harbor12345 $harbor_addr
#拉取镜像
docker pull $imageName
#运行容器
docker run -d -p $host_port:$container_port --name $project $imageName

echo "Start Container Success"

 移动deploy.sh文件至/usr/bin目中,使文件可以在任何地方运行

#增加执行权限
chmod 777 ./deploy.sh
mv deploy.sh /usr/bin

三、harbor新建仓库repo

基于gitlab+jenkins+docker+harbor,CI/CD_第3张图片

 

四、jenkins配置新任务

1. 新建任务

基于gitlab+jenkins+docker+harbor,CI/CD_第4张图片

 2. 设置任务拉取代码地址,此处为gitlab

基于gitlab+jenkins+docker+harbor,CI/CD_第5张图片

 3. 设置参数化构建过程 

基于gitlab+jenkins+docker+harbor,CI/CD_第6张图片

4. 新增构建操作,选择项目版本,在项目打包之前

基于gitlab+jenkins+docker+harbor,CI/CD_第7张图片

5. 新增构建时操作,打包项目

基于gitlab+jenkins+docker+harbor,CI/CD_第8张图片

6. 新增构建时操作,制作镜像,推送镜像至harbor

mv target/*.jar docker/
docker build -t mytest-harbor:$tag docker/
docker login -u admin -p Harbor12345 192.168.31.15:80
docker tag mytest-harbor:$tag 192.168.31.15:80/repo/mytest-harbor:$tag
docker push 192.168.31.15:80/repo/mytest-harbor:$tag

基于gitlab+jenkins+docker+harbor,CI/CD_第9张图片

 harbor仓库列表:基于gitlab+jenkins+docker+harbor,CI/CD_第10张图片

7. 配置构建后操作,通知测试服务器执行脚本文件

基于gitlab+jenkins+docker+harbor,CI/CD_第11张图片

基于gitlab+jenkins+docker+harbor,CI/CD_第12张图片

8. 构建项目 

基于gitlab+jenkins+docker+harbor,CI/CD_第13张图片

你可能感兴趣的:(jenkins,docker,ci)