41 lines
1.2 KiB
Plaintext
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=dev"] |