diff --git a/docker-compose.yml b/docker-compose.yml index 4aa185c..1de4dc6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -101,6 +101,28 @@ services: depends_on: postgres: condition: service_healthy + kontor-quarkus: + build: + context: ./kontor-quarkus + dockerfile: Dockerfile + tags: + - kontor-quarkus:0.2.0-SNAPSHOT + image: kontor-quarkus:0.2.0-SNAPSHOT + restart: unless-stopped + healthcheck: + test: ["CMD", "curl", "-f", "http://kontor-quarkus:8800/q/health"] + interval: 10s + timeout: 5s + retries: 3 + networks: + - database + - integration + - frontend + ports: + - 8800:8800 + depends_on: + postgres: + condition: service_healthy kontor-angular: build: context: ./kontor-angular diff --git a/kontor-quarkus/.dockerignore b/kontor-quarkus/.dockerignore index 4361d2f..730d87a 100644 --- a/kontor-quarkus/.dockerignore +++ b/kontor-quarkus/.dockerignore @@ -1,5 +1,9 @@ * +!build.gradle.kts +!gradle.properties +!settings.gradle.kts +!src/* !build/*-runner !build/*-runner.jar !build/lib/* -!build/quarkus-app/* \ No newline at end of file +!build/quarkus-app/* diff --git a/kontor-quarkus/Dockerfile b/kontor-quarkus/Dockerfile new file mode 100644 index 0000000..5784e01 --- /dev/null +++ b/kontor-quarkus/Dockerfile @@ -0,0 +1,37 @@ +# ----------------------------------------------------------------------- # +FROM gradle:9.2-jdk AS builder +WORKDIR / +COPY ./src/ ./src/ +COPY ./build.gradle.kts ./ +COPY ./gradle.properties ./ +COPY ./settings.gradle.kts ./ +RUN gradle build --no-daemon + +# ----------------------------------------------------------------------- # +#FROM alpine/java:21-jdk AS run + +#RUN adduser --system appuser + +#COPY --from=builder --chown=appuser:appuser /build/libs/kontor-quarkus-0.2.0-SNAPSHOT.jar app.jar + +#EXPOSE 8800 +#USER appuser +#CMD ["java", "-jar", "-Dquarkus.http.host=0.0.0.0", "app.jar"] + +# ----------------------------------------------------------------------- # +FROM registry.access.redhat.com/ubi9/openjdk-21:1.23 + +ENV LANGUAGE='en_US:en' + +# We make four distinct layers so if there are application changes the library layers can be re-used +COPY --from=builder --chown=185 build/quarkus-app/lib/ /deployments/lib/ +COPY --from=builder --chown=185 build/quarkus-app/*.jar /deployments/ +COPY --from=builder --chown=185 build/quarkus-app/app/ /deployments/app/ +COPY --from=builder --chown=185 build/quarkus-app/quarkus/ /deployments/quarkus/ + +EXPOSE 8800 +USER 185 +ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" +ENV JAVA_APP_JAR="/deployments/quarkus-run.jar" + +ENTRYPOINT [ "/opt/jboss/container/java/run/run-java.sh" ] diff --git a/kontor-quarkus/src/main/resources/application.properties b/kontor-quarkus/src/main/resources/application.properties index 8dc7e15..de2e006 100644 --- a/kontor-quarkus/src/main/resources/application.properties +++ b/kontor-quarkus/src/main/resources/application.properties @@ -1,8 +1,14 @@ +quarkus.http.port=8800 quarkus.swagger-ui.always-include=true quarkus.datasource.db-kind=postgresql quarkus.datasource.username=kontor quarkus.datasource.password=kontor -quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/kontor +quarkus.datasource.jdbc.url=jdbc:postgresql://postgres:5432/kontor +#prod +%prod.quarkus.datasource.db-kind=postgresql +%prod.quarkus.datasource.username=kontor +%prod.quarkus.datasource.password=kontor +%prod.quarkus.datasource.jdbc.url=jdbc:postgresql://postgres:5432/kontor # dev %dev.quarkus.datasource.db-kind=h2 %dev.quarkus.datasource.username=sa