Skip to content

六、Jenkins构建SpringBoot应用并部署到Docker容器

上一篇文章演示了部署到远程服务器,今天演示一下如何部署到docker容器

运行docker容器

docker-compose.yml

yaml
version: '3'

services:

  # hello-work
  hello-work:
    container_name: hello-work
    image: tangweixin/java:latest
    restart: on-failure
    ports:
      - 8001:8001
    volumes:
      - ./app:/app
    environment:
      spring.profiles.active: uat
      TZ: Asia/Shanghai
      JAR_NAME: /app/hello-work-0.0.1-SNAPSHOT.jar
      MEM: 128M

第一次启动,需要先手动拷贝把jar包到./app目录下,否则容器无法启动

启动容器

bash
docker-compose up -d

运行成功,访问接口

image-20210619185825116

新建Jenkins任务

image-20210619184338511

新建一个自由风格的任务

image-20210619184440872

配置git

配置源码管理

image-20210619184604871

配置构建

增加构建步骤执行shell

bash
# 构建
mvn package -Dmaven.test.skip=true
# 拷贝到/app目录
cp target/hello-work-0.0.1-SNAPSHOT.jar /app/
# 重启docker容器
docker restart hello-work

image-20210619184912940

挂载/app目录到Jenkins容器

由于之前的Jenkins容器没有挂载/app目录。需要重新挂载,步骤如下。

1.挂载hello-workapp目录到jenkins容器上

yaml
version: "3"

services:

  jenkinsci-demo:
    container_name: jenkinsci-demo
    image: jenkinsci/blueocean:1.24.7
    restart: on-failure
    ports:
      - 8080:8080
    environment:
      TZ: Asia/Shanghai
    volumes:
      - ./jenkins-data:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      # 挂载所需的构建软件java,maven,node等
      - ./soft:/usr/local/soft
      # 根据自己所在的目录设置
      - ../hello-work/app:/app

2.重新启动jenkins容器

bash
docker-compose down
docker-compose up -d

容器重启后,需要重新登录jenkins

image-20210619190428899

验证效果

为了验证效果更改配置,我们切换hello-work-docker的构建分支为develop

image-20210619190500573

指定分支为*/develop并保存

image-20210619190553068

点击构建,查看构建详情,发现构建失败。

解决方案,更改docker.sock权限为777

image-20210619191035443

更改docker.sock权限777

先通过root用户,进入容器

bash
docker exec -it --user root jenkinsci-demo bash
# 进入容器后,执行如下命令
chmod 777 /var/run/docker.sock 
# 验证是否更改成功
ls -lh /var/run/docker.sock
srwxrwxrwx 1 root root 0 Jun 18 21:39 /var/run/docker.sock

image-20210619223048061

再次执行构建任务

查看任务详情,已经执行到了

image-20210619223311133

构建成功

image-20210619224001949

验证构建部署效果

查看Git Build Data,确认为develop分支

image-20210619224043175

重启成功,访问接口

image-20210619224144101

至此,构建应用并部署到Docker容器演示完毕。

参考

人生感悟