SpringBoot+docker

Yml配置如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13

version: '3.8'

services:
 java-app:
   image: maven:3.9.6-amazoncorretto-8-debian-bookworm
   volumes:
     - .:/app
     - ./settings.xml:/usr/share/maven/conf/settings.xml
   working_dir: /app
   command: tail -f /dev/null
   stdin_open: true
   tty: true

这个采用的是非openjdk的maven镜像, 有需要的是因为openjdk中缺少javafx的包

settings.xml 和 SpringBoot项目需要复制一份放到docker-compose.yml的同一目录下

command: tail -f /dev/null

这个命令会使docker-compose run java-app 的时候卡在终端, 后续考虑换个后台执行的命令

docker exec -it 容器id /bin/bash 进docker container中, 找到pom.xml所在的目录, 然后执行 mvn spring-boot:run -Dmaven.test.skip=true 就可以跳过测试类的编译, 直接开始编译运行整个springboot项目 如果是 mvn spring-boot:run -DskipTests 那么只会跳过运行阶段的测试类, 不会跳过编译阶段, 有些时候测试类写的不完善会影响编译导致报错, 所以推荐使用第一种方式运行