case-data-api/Dockerfile-prod

41 lines
1.2 KiB
Plaintext

# 第一阶段:构建 JAR 包
FROM maven:3.9.2-eclipse-temurin-17-alpine AS builder
WORKDIR /app
# 添加国内 Maven 镜像源
RUN mkdir -p /root/.m2 && \
echo '<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" \
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 \
https://maven.apache.org/xsd/settings-1.0.0.xsd"> \
<mirrors> \
<mirror> \
<id>aliyun</id> \
<mirrorOf>*</mirrorOf> \
<name>aliyun maven</name> \
<url>https://maven.aliyun.com/repository/public</url> \
</mirror> \
</mirrors> \
</settings>' > /root/.m2/settings.xml
# 将 pom.xml 和 src 目录复制到容器
COPY pom.xml .
COPY src ./src
# 执行 Maven 打包
RUN mvn clean package -DskipTests
# 第二阶段:运行镜像
FROM eclipse-temurin:17-jdk-alpine
WORKDIR /app
# 将构建好的 JAR 包从构建阶段复制到运行阶段
COPY --from=builder /app/target/caseData-1.0.0.jar app.jar
# 暴露端口
EXPOSE 5477
# 启动应用
ENTRYPOINT ["java", "-jar", "app.jar", "--spring.profiles.active=prod"]