From f6019f12eaae1757cdada701577d4f9f8871f833 Mon Sep 17 00:00:00 2001 From: tiennm99 Date: Sun, 9 Nov 2025 00:56:50 +0700 Subject: [PATCH] Update Dockerfile --- Dockerfile | 46 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8fdb64d..9a60a66 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,22 +1,46 @@ FROM amazoncorretto:21.0.5-alpine AS deps + WORKDIR /build + COPY --chmod=0755 gradlew gradlew COPY gradle/ gradle/ -COPY build.gradle.kts settings.gradle.kts ./ -RUN --mount=type=cache,target=/root/.gradle \ - ./gradlew dependencies --no-daemon -FROM deps AS package +RUN --mount=type=bind,source=build.gradle.kts,target=build.gradle.kts \ + --mount=type=bind,source=settings.gradle.kts,target=settings.gradle.kts \ + --mount=type=cache,target=/root/.gradle \ + ./gradlew dependencies --no-daemon --parallel --build-cache + + + +FROM deps as package + WORKDIR /build + COPY ./src src/ -RUN --mount=type=cache,target=/root/.gradle \ - --mount=type=cache,target=/build/build \ - ./gradlew shadowJar -x check -x test --no-daemon --parallel --build-cache \ - && cp build/libs/*-all.jar app.jar +RUN --mount=type=bind,source=build.gradle.kts,target=build.gradle.kts \ + --mount=type=bind,source=settings.gradle.kts,target=settings.gradle.kts \ + --mount=type=cache,target=/root/.gradle \ + ./gradlew clean build -x check -x test --no-daemon --parallel --build-cache && \ + mv build/libs/*-all.jar build/libs/app.jar || \ + mv build/libs/*.jar build/libs/app.jar + + FROM amazoncorretto:21.0.5-alpine AS final -RUN addgroup -S appgroup && adduser -S appuser -G appgroup + +ARG UID=10001 +RUN adduser \ + --disabled-password \ + --gecos "" \ + --home "/nonexistent" \ + --shell "/sbin/nologin" \ + --no-create-home \ + --uid "${UID}" \ + appuser USER appuser + WORKDIR /app -COPY --from=package --chown=appuser:appgroup /build/app.jar app.jar -ENTRYPOINT [ "sh", "-c", "java ${JAVA_OPTS} -jar app.jar" ] + +COPY --from=package /build/build/libs/app.jar app.jar + +ENTRYPOINT ["java", "${JAVA_OPTS}", "-jar" "app.jar"]