4ec6ac68ca
- 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>
34 lines
814 B
Docker
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}"]
|