欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

DockerCompose编排使用Gradle管理的SpringBoot工程

程序员文章站 2022-03-12 15:00:37
...

现在需要在本地有网络环境打算部署一个简单的本地监控应用,并且监控通知通过企业微信机器人发送到企业微信群。使用SpringBoot写的,项目构建工具选的是Gradle而不是Maven,并且选择使用Docker部署。

我们选择的是不是打成jar包再上传到镜像部署,是直接使用源代码进行部署。

1. 环境

  • Spring Boot
  • Gradle
  • Docker
  • Docker Compose

2. 工程结构

工程结构安排如***意Dockerfiledocker-compose.yml位置
DockerCompose编排使用Gradle管理的SpringBoot工程

3. Dockerfile怎么写

FROM ringcentral/gradle:6.5.1-jdk8u202

RUN mkdir /deploy
WORKDIR /deploy

EXPOSE 8080

其中基础镜像选择的是ringcentral/gradle:6.5.1-jdk8u202,本身就包含gradlejdk8,这样的话基础环境就有了。

同时新建目录deploy,后面会把源代码映射到这个目录去

最后就是暴露的端口8080指定,这个要和工程里面配置的端口相同

4. docker-compose.yml怎么写

version: "3"
services:
  service-watcher:
    build: ./
    image: service-watcher
    command: /bin/sh -c "gradle clean build -x test bootRun"
    restart: always
    volumes:
      - ./:/deploy
    ports:
      - 9001:8080
    logging:
      options:
        max-size: "10m"
        max-file: "10"

比较重要的一句是command: /bin/sh -c "gradle clean build -x test bootRun"这里-x test指的是跳过单元测试,bootRun是指启动工程。你也可以根据自己的需要加其他的配置

5.启动工程

到项目的根据下运行docker-compose up -d即可,然后可以通过docker logs -f [containerID]查看日志

这个启动会相对比较慢,原因是这里gradle本身需要设置Daemon进程。另外,就是需要下载jar包依赖

好处就是不用先打jar包再进行相关操作,流程相对简单