FROM eclipse-temurin:21-jdk WORKDIR /app # Copy build configuration and wrapper first so this layer caches well. COPY gradlew settings.gradle build.gradle ./ COPY gradle/ gradle/ RUN chmod +x gradlew # Copy backend module. The dev compose overlays this with a host bind mount # for live source changes; if the bind mount is absent (DinD, CI, k8s) the # image is still self-contained and `gradlew :backend:bootRun` will work. COPY backend/ backend/ EXPOSE 8080 ENTRYPOINT ["./gradlew", ":backend:bootRun", "--no-daemon"]