diff --git a/Dockerfile b/Dockerfile index e21748937..4ca415210 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,27 +1,31 @@ # Example of custom Java runtime using jlink in a multi-stage container build -FROM gradle:jdk21 as jdk-build +FROM gradle:jdk21 as build -COPY --chown=gradle:gradle . /home/gradle/src -WORKDIR /home/gradle/src -RUN ls -al +RUN mkdir /app + +COPY --chown=gradle:gradle . /app +WORKDIR /app +#skip test, becase testin is another RUN gradle build -x test --no-daemon -# Create a custom Java runtime -# RUN $JAVA_HOME/bin/jlink \ -# --add-modules java.base \ -# --strip-debug \ -# --no-man-pages \ -# --no-header-files \ -# --compress=2 \ -# --output /javaruntime +FROM openjdk:21-jdk-slim as builder -FROM openjdk:21 +WORKDIR /app + +COPY --from=build /app/build/libs/spring-petclinic-3.4.0.jar /app/spring-petclinic.jar +RUN java -Djarmode=layertools -jar spring-petclinic.jar extract + + +FROM openjdk:21-jdk-slim EXPOSE 8080 RUN mkdir /app -# ENV SPRING_PROFILES_ACTIVE=dev +COPY --from=builder app/dependencies/ ./ +COPY --from=builder app/spring-boot-loader/ ./ +COPY --from=builder app/snapshot-dependencies/ ./ +COPY --from=builder app/application/ ./ -COPY --from=jdk-build /home/gradle/src/build/libs/*.jar /app/spring-boot-application.jar +ENV SPRING_PROFILES_ACTIVE=default -ENTRYPOINT ["java", "-XX:+UnlockExperimentalVMOptions", "-Djava.security.egd=file:/dev/./urandom","-jar","/app/spring-boot-application.jar", "$JAVA_OPTS"] \ No newline at end of file +ENTRYPOINT ["java", "-XX:+UnlockExperimentalVMOptions", "-Djava.security.egd=file:/dev/./urandom", "org.springframework.boot.loader.launch.JarLauncher"] diff --git a/docker-compose.yml b/docker-compose.yml index 5e1b173e7..4e9f07f3e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,7 +8,7 @@ services: # - POSTGRES_USER=petclinic # - POSTGRES_DB=petclinic petclinic: - image: spring.petclinic:${CONTEINER_VESION} + image: spring.petclinic:${CONTAINER_VESION:-latest} container_name: petclinic build: ./ environment: