Java项目部署到docker

项目打包

直接在maven->项目名->生存期->package, 双击即可在target文件夹拿到jar文件

docker部署

方式一

使用Dockerfile直接打包

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 使用 GraalVM 17 作为基础镜像
FROM ghcr.io/graalvm/graalvm-ce:latest

# 设置容器内的工作目录
WORKDIR /app

# 将可执行的jar文件复制到容器内
COPY target/backend-1.0.0.jar /app/backend-1.0.0.jar

# 暴露Spring Boot应用程序运行的端口
EXPOSE 8001

# 运行Spring Boot应用程序的命令
ENTRYPOINT ["java", "-jar", "/app/backend-1.0.0.jar", "--spring.profiles.active=prod"]

缺点: 还需要个容器仓库配合, 如果有CI倒是还行

方式二

不打包镜像, 直接运行

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
services:
  graalvm-app:
    image: ghcr.202816.xyz/graalvm/graalvm-ce:latest
    ports:
      - "8089:8089"
      - "9089:9089"
    working_dir: /app
    entrypoint: ["java", "-jar", "/app/backend-1.0.0.jar", "--spring.profiles.active=prod"]
    volumes:
      - /root/java_runtime:/app

这样只要jar丢到目录, 然后 docker compose restart 即可

202508更新

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
services:
  graalvm-app:
    image: ghcr.202816.xyz/graalvm/graalvm-ce:latest
    ports:
      - "8089:8089"
      - "9089:9089"
    working_dir: /app
    entrypoint: ["java","-Dfile.encoding=UTF-8","-Duser.language=zh", "-jar", "/app/backend-1.0.0.jar", "--spring.profiles.active=local"]
    environment:
      LANG: C.UTF-8
      LC_ALL: C.UTF-8
      LANGUAGE: zh
      TZ: Asia/Shanghai
    volumes:
      - /root/java_runtime:/app
  • 解决日志/某些接口中文乱码问题
  • 日志输出时区问题
Licensed under CC BY-NC-SA 4.0
记录平时瞎折腾遇到的各种问题, 方便查找
使用 Hugo 构建
主题 Stack 3.29.0Jimmy 设计