From 96ceed3d5d7fef37ada32e4dc229555897fdc0aa Mon Sep 17 00:00:00 2001 From: UNGGU0704 Date: Fri, 13 Jun 2025 10:17:23 +0900 Subject: [PATCH] =?UTF-8?q?Create:=20review=20Dockerfile=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- review/Dockerfile | 57 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 review/Dockerfile diff --git a/review/Dockerfile b/review/Dockerfile new file mode 100644 index 0000000..1a09876 --- /dev/null +++ b/review/Dockerfile @@ -0,0 +1,57 @@ +# Multi-stage build for review service +FROM gradle:8.13-jdk21 AS builder + +WORKDIR /app + +# Copy gradle files +COPY build.gradle settings.gradle gradlew ./ +COPY gradle/ ./gradle/ + +# Copy common module first (for better caching) +COPY common/ ./common/ + +# Copy review service source +COPY review/ ./review/ + +# Build the application +RUN ./gradlew review:build -x test --no-daemon + +# Runtime stage +FROM openjdk:21-jdk-slim + +# Create app user +RUN groupadd -r appgroup && useradd -r -g appgroup appuser + +# Install necessary packages +RUN apt-get update && apt-get install -y \ + curl \ + && rm -rf /var/lib/apt/lists/* + +# Create directories +RUN mkdir -p /app /var/hiorder/uploads && \ + chown -R appuser:appgroup /app /var/hiorder + +WORKDIR /app + +# Copy jar file from builder stage +COPY --from=builder /app/review/build/libs/review-*.jar app.jar + +# Change ownership +RUN chown appuser:appgroup app.jar + +# Switch to non-root user +USER appuser + +# Expose port +EXPOSE 8083 + +# Health check +HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ + CMD curl -f http://localhost:8083/actuator/health || exit 1 + +# Environment variables +ENV JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:+UseStringDeduplication" +ENV SPRING_PROFILES_ACTIVE=docker + +# Run the application +ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"] \ No newline at end of file