# ============================================================= # freedom-admin 后端镜像 # 构建阶段:Maven 3.6.3 + JDK8 打包(使用阿里云镜像加速依赖下载) # 运行阶段:JRE8 运行 jar # ============================================================= FROM maven:3.6.3-jdk-8 AS builder WORKDIR /build # 配置 Maven 国内镜像源,加速依赖下载 RUN mkdir -p /root/.m2 && \ echo '' > /root/.m2/settings.xml && \ echo '> /root/.m2/settings.xml && \ echo ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' >> /root/.m2/settings.xml && \ echo ' xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">' >> /root/.m2/settings.xml && \ echo ' ' >> /root/.m2/settings.xml && \ echo ' ' >> /root/.m2/settings.xml && \ echo ' aliyun' >> /root/.m2/settings.xml && \ echo ' central' >> /root/.m2/settings.xml && \ echo ' Aliyun Maven' >> /root/.m2/settings.xml && \ echo ' https://maven.aliyun.com/repository/central' >> /root/.m2/settings.xml && \ echo ' ' >> /root/.m2/settings.xml && \ echo ' ' >> /root/.m2/settings.xml && \ echo '' >> /root/.m2/settings.xml # 复制 pom 与源码(利用 Docker 分层缓存) COPY pom.xml . COPY src ./src # 打包(跳过测试),产物 target/freedom-admin-1.0.1.jar RUN mvn -B clean package -DskipTests # ---------- 运行阶段 ---------- FROM openjdk:8-jre-slim WORKDIR /app # 设置时区 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo 'Asia/Shanghai' > /etc/timezone # 复制构建产物 COPY --from=builder /build/target/*.jar /app/app.jar # 对外暴露端口(与 application.yml server.port 一致) EXPOSE 8800 # 启动。数据库等敏感配置通过环境变量注入(见 docker-compose / .env) ENTRYPOINT ["java", "-jar", "/app/app.jar"]