28 lines
943 B
Docker
28 lines
943 B
Docker
# 第一阶段:使用包含 Maven 和 JDK 11 的镜像进行构建
|
||
FROM maven:3.8.4-openjdk-11-slim AS builder
|
||
|
||
WORKDIR /app
|
||
# 1. 将本地项目所有内容拷贝到容器中 (包含pom.xml、src等)
|
||
COPY . .
|
||
|
||
# 2. 使用 Maven 在容器中进行编译和打包(如果需要测试可去掉 -DskipTests)
|
||
RUN mvn clean package -DskipTests
|
||
|
||
# ------------------------------------
|
||
# 第二阶段:使用精简的 OpenJDK 11 镜像作为运行时环境
|
||
FROM openjdk:11-jre-slim
|
||
|
||
WORKDIR /app
|
||
|
||
# 3. 从构建阶段复制打包好的 jar 文件到运行阶段
|
||
COPY --from=builder /app/target/baogutang-music-1.0-SNAPSHOT.jar /app/app.jar
|
||
|
||
# 4. (可选) 复制证书文件到容器中。如果你的证书在项目根目录 certs/ 下,就这样写:
|
||
COPY src/main/resources/alipay/prod /usr/local/certs/baogutang/alipay/prod
|
||
|
||
# 若应用在 8105 端口监听,这里进行暴露
|
||
EXPOSE 8105
|
||
|
||
# 运行应用
|
||
CMD ["java", "-jar", "app.jar"]
|