Docker搭建Jenkins并部署SpringCloud服务

Docker搭建Jenkins并部署SpringCloud服务

前言

本次所安装Jenkin和发布SpringCloud,需要用到如下工具:
Centos7,docker,docker-compose,harbor,jdk1.8,mvn3.5.4等;

这里只讲述Docker部署Jenkins并发布SpringCloud服务

Docker安装Jenkins

新建docker-compose.yaml文件

version: '3'
services:
  jenkins-server:
    image: jenkins/jenkins:lts
    hostname: jenkins-server
    container_name: jenkins-server
    restart: always
    ports:
      - 8080:8080
    volumes:
      - ./jenkins/data:/var/jenkins_home
      - ./jenkins/war:/usr/share/jenkins/
      - /usr/local/jdk1.8.0_311:/usr/local/jdk1.8.0_311
      - /usr/local/apache-maven-3.8.4:/usr/local/apache-maven-3.8.4
      - /home/mavenHome:/home/mavenHome
    networks:
      dell-net:
        ipv4_address: 172.19.0.18
# 自定义网段
networks:
  dell-net:
    ipam:
      config:
        - subnet: 172.19.0.0/24

注意:

volumes:

  • 分别将jenkins_home,jenkins启动war包,宿主机jdk,mvn,mvn本地仓库挂载在上述的目录当中,原因是容器内部安装各种环境很麻烦,而且有网速限制,所以直接宿主机装好后挂载;

  • 我的宿主机目录jenkinshome目录下面,所以这里的docker-compose.yaml也在**home目录下,和jenkins**目录同一级

  • 我这里挂载war包路径的目的是后期如果Jenkins有更新,直接将war包放在宿主机的war目录即可;

运行docker-compose,启动Jenkins

cd /home/
# 启动,如果docker-compose只有一个服务可不加-d后面的服务名称
docker-compose up -d jenkins-server

注意:

启动时注意看一下Jenkins的启动日志,因为Jenkins是用jenkins账户启动的,所以又可能会权限不足,这个时候只需要将宿主机的jenkins和maven本地仓库权限放开就行了;

chmod 777 /home/jenkins/
chmod 777 /home/mavenHome/

Jenkins配置

  • Jenkins安装好以后,浏览器访问http://127.0.0.1:8080,即可看见Jenkins的初始化界面,按照新手操作就行了;账号可以自己创建,也可以用默认的admin;
  • 配置好后就可以进入主界面,下面是我已经配置好的三个任务,分别发布后端,前端,和管理一些中间件的启动;
  • 到此Jenkins就已经通过Docker安装好了,接下来就是配置自己的任务了;

Docker搭建Jenkins并部署SpringCloud服务_第1张图片

Jenkins部署SpringCloud

所需插件

image-20220414095751269

image-20220414095819199

主界面点击->新建任务->选择maven项目

Docker搭建Jenkins并部署SpringCloud服务_第2张图片

Docker搭建Jenkins并部署SpringCloud服务_第3张图片

Docker搭建Jenkins并部署SpringCloud服务_第4张图片

Docker搭建Jenkins并部署SpringCloud服务_第5张图片

代码我是放在码云上面的,这里需要添加码云的全局凭据

Docker搭建Jenkins并部署SpringCloud服务_第6张图片

Docker搭建Jenkins并部署SpringCloud服务_第7张图片

Docker搭建Jenkins并部署SpringCloud服务_第8张图片

Docker搭建Jenkins并部署SpringCloud服务_第9张图片

Docker搭建Jenkins并部署SpringCloud服务_第10张图片

Docker搭建Jenkins并部署SpringCloud服务_第11张图片

Docker搭建Jenkins并部署SpringCloud服务_第12张图片

打包镜像到harbor

Docker搭建Jenkins并部署SpringCloud服务_第13张图片

#!/bin/bash
# 我在工程目录的target目录下新建了一个服务文件夹,并将代码工程目录下的Dockerfile和target里面的jar包移动到该服务文件夹下面,方便docker打包镜像
DOCKERFILE=${WORKSPACE}/target/${module_name}
mkdir ${DOCKERFILE}
if [ ${module_name} == 'system' ]; then
	cd ${WORKSPACE}/service/${module_name}/
elif [ ${module_name} == 'resources' ]; then
	cd ${WORKSPACE}/plugins/${module_name}/
else
	cd ${WORKSPACE}/${module_name}/
fi
cp Dockerfile ${DOCKERFILE}/
cd ${WORKSPACE}/target/
cp ${module_name}.jar ${DOCKERFILE}/

Docker搭建Jenkins并部署SpringCloud服务_第14张图片

Docker搭建Jenkins并部署SpringCloud服务_第15张图片

远程执行命令,启动服务

Docker搭建Jenkins并部署SpringCloud服务_第16张图片

#!/bin/bash
echo '--------------停止并删除'${module_name}'------------------'
docker stop ${module_name} && docker rm ${module_name}
echo '--------------开始构建'${module_name}'------------------'
# 这里是我将docker-compose.yml放在了代码里,代码拉下来就在Jenkins的工作目录里(当前任务目录),所以这里我直接执行就ok
# 如果没有,可以自定义下面的docker脚本
cd /home/jenkins/data/workspace/cloud/script
docker-compose up -d ${module_name}
ssh和docker配置

Docker搭建Jenkins并部署SpringCloud服务_第17张图片

image-20220414102401812

Docker搭建Jenkins并部署SpringCloud服务_第18张图片

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