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

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

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

1. 环境

  • Spring Boot
  • Gradle
  • Docker
  • Docker Compose

2. 工程结构

工程结构安排如下,注意Dockerfiledocker-compose.yml位置
DockerCompose编排使用Gradle管理的SpringBoot工程_第1张图片

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包再进行相关操作,流程相对简单

你可能感兴趣的:(Java,SpringBoot)