DockerCompose编排使用Gradle管理的SpringBoot工程
程序员文章站
2022-03-12 15:00:37
...
现在需要在本地有网络环境打算部署一个简单的本地监控应用,并且监控通知通过企业微信机器人发送到企业微信群。使用SpringBoot写的,项目构建工具选的是Gradle而不是Maven,并且选择使用Docker部署。
我们选择的是不是打成jar包再上传到镜像部署,是直接使用源代码进行部署。
1. 环境
- Spring Boot
- Gradle
- Docker
- Docker Compose
2. 工程结构
工程结构安排如***意Dockerfile
和docker-compose.yml
位置
3. Dockerfile怎么写
FROM ringcentral/gradle:6.5.1-jdk8u202
RUN mkdir /deploy
WORKDIR /deploy
EXPOSE 8080
其中基础镜像选择的是ringcentral/gradle:6.5.1-jdk8u202
,本身就包含gradle
和jdk8
,这样的话基础环境就有了。
同时新建目录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包再进行相关操作,流程相对简单
下一篇: 淘宝自营“护肤品”精准引流加粉分享