dockerFile文件
This commit is contained in:
parent
a385798966
commit
15a1cef041
56
aircraft-system/Dockerfile
Normal file
56
aircraft-system/Dockerfile
Normal file
@ -0,0 +1,56 @@
|
||||
# 第一阶段:使用Maven构建项目
|
||||
FROM maven:3.8.7-openjdk-17 AS builder
|
||||
|
||||
# 设置工作目录
|
||||
WORKDIR /workspace
|
||||
|
||||
# 复制所有POM文件以利用Docker缓存层
|
||||
COPY pom.xml .
|
||||
COPY aircraft-common/pom.xml ./aircraft-common/
|
||||
COPY aircraft-generator/pom.xml ./aircraft-generator/
|
||||
COPY aircraft-logging/pom.xml ./aircraft-logging/
|
||||
COPY aircraft-system/pom.xml ./aircraft-system/
|
||||
COPY aircraft-tools/pom.xml ./aircraft-tools/
|
||||
|
||||
# 下载依赖项(仅当pom文件更改时才会重新执行)
|
||||
RUN mvn -B dependency:go-offline
|
||||
|
||||
# 复制源代码
|
||||
COPY aircraft-common/src ./aircraft-common/src
|
||||
COPY aircraft-generator/src ./aircraft-generator/src
|
||||
COPY aircraft-logging/src ./aircraft-logging/src
|
||||
COPY aircraft-system/src ./aircraft-system/src
|
||||
COPY aircraft-tools/src ./aircraft-tools/src
|
||||
|
||||
# 构建整个项目并跳过测试
|
||||
RUN mvn -B package -pl aircraft-system -am -DskipTests
|
||||
|
||||
# 第二阶段:创建运行时镜像
|
||||
FROM eclipse-temurin:17-jre-alpine
|
||||
|
||||
# 设置元数据
|
||||
LABEL maintainer="aircraft-team"
|
||||
LABEL module="aircraft-system"
|
||||
|
||||
# 设置工作目录
|
||||
WORKDIR /app
|
||||
|
||||
# 从构建阶段复制生成的JAR文件
|
||||
COPY --from=builder /workspace/aircraft-system/target/*.jar app.jar
|
||||
|
||||
# 设置时区
|
||||
ENV TZ=Asia/Shanghai
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
# 暴露默认端口
|
||||
EXPOSE 8000
|
||||
|
||||
# 设置JVM参数
|
||||
ENV JAVA_OPTS="-Xmx512m -Xms256m -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
|
||||
|
||||
# 健康检查
|
||||
HEALTHCHECK --interval=30s --timeout=3s \
|
||||
CMD wget -q -O - http://localhost:8000/actuator/health || exit 1
|
||||
|
||||
# 启动应用
|
||||
ENTRYPOINT exec java $JAVA_OPTS -jar app.jar
|
Loading…
Reference in New Issue
Block a user