docker jenkins安装、使用案例

968 阅读2分钟

Jenkins作为CI/CD的常用工具,下面给出基本的安装使用说明。

docker、docker-compose安装

前面我已经介绍了如何安装 centos docker安装点击跳转过去即可

jenkins docker-compose.yml编写

这里的Jenkins就直接部署单机版本,如果后续内存不足,可以指定Jenkins docker的使用内存

version: '3.1'
services:
  jenkins:
    image: jenkins/jenkins:centos7
    container_name: jenkins
    networks:
      huzhihui:
        ipv4_address: 172.20.20.1
    volumes:
      - ./jenkins_home:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker
    ports:
      - "8080:8080"
    environment:
      - "TZ=Asia/Shanghai"
    user: root
networks:
  huzhihui:
    external: true
  • 官方推荐的版本
version: '3'
services:
  jenkins:
    image: jenkins/jenkins:lts-jdk11
    networks:
      - default
    container_name: jenkins-lts-jdk11
    volumes:
      - ./jenkins_home:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker
    environment:
      - "TZ=Asia/Shanghai"
    ports:
      - 8080:8080
      - 50000:50000
    user: root
networks:
  default:
    external:
      name: huzhihui

上面我指定了网络,如果需要默认网络的去掉networks相关配置即可

挂在的共享目录,便于后续宿主机操作容器,和容器操作宿主机,按照自己的需要进行挂在 volumes

启动jenkins docker-compose.yml 然后按照提示输入密码等信息进入首页

上面的jenkins版本会存在中文乱码问题,可以替换为我重新打包的镜像huzhihui/jenkins:1.0.0 跳转

image.png

系统配置和全局工具配置

配置常用工具,后续在流程使用的时候即可使用

全局工具配置

JDK MAVEN配置 先把相关的JDK包和MAVEN包复制到共享的文件夹中,如我共享的文件夹

[root@localhost ext_soft]# pwd
/usr/local/docker/jenkins/jenkins_home/ext_soft
[root@localhost ext_soft]# ls
apache-maven-3.8.1  jdk1.8

image.png image.png

JDK配置

image.png

git就直接在插件库中安装即可,安装后如下显示,不用自己配置

image.png

常用工具Publish over SSH 配置 先去工具库中安装,然后重启后配置,我这里用的用户名和密码,注意Remote Directory配置后,后面的文件都会在这个文件夹下面,

image.png

image.png

Springboot项目 jar包发布初体验

这里给出比较简单的示例,后续按照个人需求进行扩展,插件库中很多插件都可以额外给我们提供帮助

新建项目

image.png

配置 image.png

image.png

image.png

image.png

image.png

Exec command示例

# 此处是关掉之前的老项目进程
PROJECT_NAME='home-1.0.0.jar'
PROCESS=`ps -ef|grep $PROJECT_NAME|grep -v grep|grep -v PPID|awk '{ print $2}'`
if [ -n "$PROCESS" ]; then
        echo "kill PID=$PROCESS"
        for i in $PROCESS
        do
                echo "Kill the $PROJECT_NAME process [ $i ]"
                kill -9 $i
        done
fi

# 切换到目录下删除之前运行的文件
cd /root/home
rm -rf /root/run/home-1.0.0.jar
# 复制传输过来的文件到运行文件夹
mv /root/home/home-1.0.0.jar /root/run/home-1.0.0.jar
cd /root/run
# 可能部分机器配置的java命令不起作用,重新读取一下配置
source /etc/profile
nohup java -jar home-1.0.0.jar --server.port=9000 >> nohup.log  2>&1 &