From 42c071fbf04563b47e9b394b4c5e0d657e703f87 Mon Sep 17 00:00:00 2001 From: John Hanzu Kim Date: Tue, 17 Jun 2025 09:36:09 +0900 Subject: [PATCH] Update Dockerfile --- .../deployment/container/Dockerfile | 36 +++++++++---------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/smarketing-java/deployment/container/Dockerfile b/smarketing-java/deployment/container/Dockerfile index f4ec12d..be0f578 100644 --- a/smarketing-java/deployment/container/Dockerfile +++ b/smarketing-java/deployment/container/Dockerfile @@ -1,17 +1,11 @@ -# Multi-stage build for Spring Boot application -FROM gradle:8.13-jdk17 AS builder - -# Build arguments +# Build stage +FROM eclipse-temurin:17-jre AS builder ARG BUILD_LIB_DIR ARG ARTIFACTORY_FILE - WORKDIR /app - -# Copy source code (assumed to be already built) -# The JAR file should be copied from the build context COPY ${BUILD_LIB_DIR}/${ARTIFACTORY_FILE} app.jar -# Runtime stage +# Run stage FROM eclipse-temurin:17-jre # Install necessary packages @@ -20,22 +14,25 @@ RUN apt-get update && apt-get install -y \ netcat-traditional \ && rm -rf /var/lib/apt/lists/* -# Create non-root user -RUN groupadd -r appuser && useradd -r -g appuser appuser +ENV USERNAME k8s +ENV ARTIFACTORY_HOME /home/${USERNAME} +ENV JAVA_OPTS="" -# Set working directory -WORKDIR /app +# Add a non-root user +RUN groupadd -r ${USERNAME} && useradd -r -g ${USERNAME} ${USERNAME} && \ + mkdir -p ${ARTIFACTORY_HOME} && \ + chown ${USERNAME}:${USERNAME} ${ARTIFACTORY_HOME} + +WORKDIR ${ARTIFACTORY_HOME} # Copy JAR from builder stage COPY --from=builder /app/app.jar app.jar - -# Change ownership -RUN chown -R appuser:appuser /app +RUN chown ${USERNAME}:${USERNAME} app.jar # Switch to non-root user -USER appuser +USER ${USERNAME} -# Expose port (will be overridden by environment variables) +# Expose port EXPOSE 8080 # Health check @@ -43,4 +40,5 @@ HEALTHCHECK --interval=30s --timeout=3s --start-period=60s --retries=3 \ CMD curl -f http://localhost:8080/actuator/health || exit 1 # Run the application -ENTRYPOINT ["java", "-jar", "app.jar"] +ENTRYPOINT ["sh", "-c"] +CMD ["java ${JAVA_OPTS} -jar app.jar"]