使用Docker Maven打包Java/Spring Boot工程
Haiya Lv3

概述

某些情况下环境不同步会造成的 Maven Package 失败,使用 Maven 的 Docker 镜像对工程进行打包可以避免这种问题。

Dockerfile

以下镜像基于 JDK17 构建,如果需要其他版本请自行修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
FROM maven:3-eclipse-temurin-17-focal AS build
MAINTAINER yourname <youremail@example.com>

ADD . /app/yourappname
RUN cd /app/yourappname && mvn install -Dmaven.test.skip=true && mvn clean package -Dmaven.test.skip=true

FROM openjdk:17
MAINTAINER yourname <youremail@example.com>

ENV LANG=C.UTF-8 \
LC_ALL=C.UTF-8

# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
echo $TZ > /etc/timezone

CMD ["bash"]

WORKDIR /app

COPY --from=build /app/yourappname/target/*.jar ./app.jar
# 附加配置文件
# COPY config/application-prod.yml /app/config/application.yml

EXPOSE 8080
# ENTRYPOINT ["java","-Dspring.config.additional-location=/app/config/application.yml","-jar","/app/app.jar"]
ENTRYPOINT ["java","-jar","/app/app.jar"]

构建

1
docker build -t your-app-name:your.version .

References

由 Hexo 驱动 & 主题 Keep