在Ubuntu22.04上使用Jenkins+Docker 持续集成springboot,完美支持多环境配置

第一部:准备2台虚拟机

服务器名IP
jenkins192.168.124.249
docker192.168.124.248

第二部:在jenkins服务器上安装java,因为后续需要编译代码,所以直接安装jdk

  1. 安装jdk,目前Jenkins最低需要jdk11

    apt install openjdk-11-jdk
    

第三步:安装jenkins

  1. 由于Jenkins和Ubuntu版本更新,安装方式也可能会变.参考官方文档
    https://www.jenkins.io/doc/book/installing/linux/#debianubuntu

  2. 修改jenkins端口号

    vim /etc/init.d/jenkins
    vim /etc/default/jenkins
    vim /usr/lib/systemd/system/jenkins.service
    systemctl daemon-reload
    
  3. 启用 Jenkins(自动启动),并使用以下命令验证状态:

    systemctl enable jenkins
    systemctl start jenkins
    systemctl status jenkins
    
  4. 配置防火墙
    我把jenkin的端口号设置为了7777

    ufw allow 7777
    ufw allow OpenSSH
    ufw enable
    ufw status
    

第四步:在Docker服务器安装docker和docker-compose

  1. 安装docker

    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
    
  2. 安装docker-compose

    apt-get install docker-compose
    
  3. 开启docker远程访问

    vim /usr/lib/systemd/system/docker.service
    
    ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock
    
  4. 重启docker

    systemctl daemon-reload
    systemctl restart docker
    

    通过浏览器验证远程访问是否成功: http://192.168.124.248:2375/images/json

第五步:编写shell脚本、docker-compose.yml和Dockerfile,放到docker服务器的/home/benchu

  1. demo-start.sh

    app_name='xxxx-java'
    echo '通过docker-compose关闭容器'
    docker-compose down
    echo '删除老镜像'
    #docker images -a|grep none|awk '{print $3}'|xargs docker rmi
    docker rmi xxxx-java
    echo '创建新的镜像'
    docker build -t xxxx-java .
    echo '通过docker-compose启动容器'
    docker-compose up -d
    
  2. demo-start.sh 添加执行权限

    chmod 777 emo-start.sh
    
  3. Dockerfile,最后一步 可以灵活配置多环境

    # 基础镜像
    FROM openjdk:8
    # author
    MAINTAINER Stud
    
    # 挂载目录
    VOLUME /home/benchu
    # 创建目录
    RUN mkdir -p /home/benchu
    # 指定路径
    WORKDIR /home/benchu
    # 复制jar文件到路径
    COPY benchu-admin.jar /home/benchu/benchu-admin.jar
    # 启动应用
    ENTRYPOINT ["java","-jar","benchu-admin.jar","--spring.profiles.active=test"]
    
  4. docker-compose.yml

    version: '3'
    services:
      benchu:
        container_name: 'xxxx-java'
        image: 'xxxx-java'
        restart: always
        environment:
          TZ: 'Asia/Shanghai'
        ports:
          - '8888:8888'
        volumes:
          - /home/jenkins/logs:/home/demo/logs
    

    路径映射volumes,左边是宿主机,右边是docker容器.目前只把logs映射到宿主机,根据实际情况修改

第六步:通过浏览器配置jenkins,并新建构建视图

前面的配置git,SSH,jdk,maven和新建item的前半段就不赘述了,非常简单,网上教程也很多.

jenkins–系统管理–系统配置–Publish over SSH
在这里插入图片描述

从新建item的构建开始.

  1. 增加构建步骤 ==>> 调用顶层的maven目标
    描述

  2. 增加构建步骤 ==>> Send files or execute commands over SSH
    在这里插入图片描述

  3. 增加构建步骤 ==>> Execute shell script on remote host using ssh (这些脚本理论上是可以放在上一步的,图片的cd目录写错了懒得改了)

    cd /home/benchu
    echo '当前所在路径'
    pwd
    sh demo-start.sh
    

在这里插入图片描述

完结撒花

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
评论

打赏作者

码农20年

给我你就上当了

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值