Files
hongjianli 4ec6ac68ca feat: docker build with maven cache and docker profile
- Add Dockerfile for in-container maven build (offline mode)
- Add application-docker.yml for docker environment
- Add logback-docker.xml for docker logging
- Update docker-compose.yml: use strong passwords, docker profile
- Add full database backup before rebuild
- Add .m2-repo to gitignore

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-01-16 17:12:26 +08:00

34 lines
814 B
Docker

# 构建阶段
FROM maven:3.9-eclipse-temurin-17 AS builder
WORKDIR /build
# 复制本地 Maven 仓库(已缓存的依赖)
COPY .m2-repo /root/.m2/repository
# 复制源码
COPY pom.xml .
COPY src ./src
# 离线编译
RUN mvn clean package -DskipTests -B -o
# 运行阶段
FROM eclipse-temurin:17-jre-jammy
LABEL maintainer="JohnSion"
LABEL description="武术比赛管理系统后端服务"
WORKDIR /app
COPY --from=builder /build/target/blade-api.jar /app/blade-api.jar
EXPOSE 8123
HEALTHCHECK --interval=30s --timeout=3s --start-period=90s --retries=3 CMD curl -f http://localhost:8123/actuator/health || exit 1
ENV JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC"
ENV SPRING_PROFILE="docker"
CMD ["sh", "-c", "java ${JAVA_OPTS} -jar /app/blade-api.jar --spring.profiles.active=${SPRING_PROFILE}"]