Files
blog-server/Dockerfile
2025-11-05 15:11:41 +08:00

35 lines
868 B
Docker

# ===== build stage =====
FROM harbor.merlin.xin/mirrors/docker.io/library/maven:3.9.6-eclipse-temurin-17 AS builder
WORKDIR /app
COPY pom.xml .
RUN --mount=type=cache,target=/root/.m2 mvn -B -q dependency:go-offline
COPY . .
RUN --mount=type=cache,target=/root/.m2 mvn -B -q package -DskipTests
# ===== runtime stage =====
FROM harbor.merlin.xin/mirrors/docker.io/library/eclipse-temurin:17-jre-alpine
# >>> Install debug tools <<<
RUN apk update && apk add --no-cache \
curl \
bind-tools \
busybox-extras \
iproute2 \
tcpdump \
net-tools
WORKDIR /app
COPY --from=builder /app/target/*.jar app.jar
RUN addgroup -S spring && adduser -S spring -G spring
RUN mkdir -p /app/uploads/photo \
&& chown -R spring:spring /app/uploads
USER spring
ENTRYPOINT ["java","-jar","/app/app.jar","--spring.config.location=file:/app/application.yml"]