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安装好了,接下来就是配置自己的任务了;

image-20220414093911950

Jenkins部署SpringCloud

所需插件

image-20220414095751269

image-20220414095819199

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

image-20220414100004324

image-20220414100048411

image-20220414100125180

image-20220414100143810

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

image-20220414100450825

image-20220414100524202

image-20220414100651569

image-20220414100228501

image-20220414100733938

image-20220414100746308

image-20220414100809450

打包镜像到harbor

image-20220414100952261

#!/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}/

image-20220414101702234

image-20220414101837649

远程执行命令,启动服务

image-20220414102003604

#!/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配置

image-20220414102338535

image-20220414102401812

image-20220414102440842

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

boothua

觉得可以的话,请作者喝杯咖啡吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值