Dockerfile 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. FROM gradle:8.4.0-jdk17-jammy AS build
  2. LABEL authors="pcoletta"
  3. WORKDIR /app
  4. # Installa OpenSSL se non presente
  5. RUN apt-get update && apt-get install -y openssl && rm -rf /var/lib/apt/lists/*
  6. # Copy dependency definitions first (for better caching)
  7. COPY build.gradle settings.gradle gradle.properties ./
  8. # Download dependencies (cached unless build files change)
  9. RUN gradle dependencies --no-daemon || true
  10. # Copy source code
  11. COPY src/ ./src
  12. # Genera le chiavi JWT se non esistono già
  13. RUN mkdir -p src/main/resources && \
  14. if [ ! -f src/main/resources/privateKey.pem ]; then \
  15. openssl genrsa -out src/main/resources/privateKey.pem 2048 && \
  16. openssl rsa -in src/main/resources/privateKey.pem -pubout -out src/main/resources/publicKey.pem; \
  17. fi
  18. # Build with more verbose output
  19. RUN gradle build --no-daemon --stacktrace --info
  20. FROM registry.access.redhat.com/ubi8/openjdk-17:1.20
  21. WORKDIR /app
  22. COPY --from=build --chown=185 /app/build/quarkus-app/lib/ /deployments/lib/
  23. COPY --from=build --chown=185 /app/build/quarkus-app/*.jar /deployments/
  24. COPY --from=build --chown=185 /app/build/quarkus-app/app/ /deployments/app/
  25. COPY --from=build --chown=185 /app/build/quarkus-app/quarkus/ /deployments/quarkus/
  26. EXPOSE 8080
  27. USER 185
  28. ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
  29. ENV JAVA_APP_JAR="/deployments/quarkus-run.jar"
  30. ENTRYPOINT [ "/opt/jboss/container/java/run/run-java.sh" ]