FROM quay.io/quarkus/ubi-quarkus-mandrel-builder-image:jdk-21 AS build

ARG GITLAB_MVN_TOKEN
COPY <<EOF /mvn-settings.xml
<settings>
  <servers>
    <server>
      <id>gitlab-maven</id>
      <configuration>
        <httpHeaders>
          <property>
            <name>Job-Token</name>
            <value>$GITLAB_MVN_TOKEN</value>
          </property>
        </httpHeaders>
      </configuration>
    </server>
  </servers>
</settings>
EOF

COPY --chown=quarkus:quarkus config /code/config

COPY --chown=quarkus:quarkus mvnw /code/mvnw
COPY --chown=quarkus:quarkus .mvn /code/.mvn
COPY --chown=quarkus:quarkus pom.xml /code/pom.xml

COPY --chown=quarkus:quarkus z3-application/pom.xml /code/z3-application/pom.xml
COPY --chown=quarkus:quarkus z3-application/src /code/z3-application/src

COPY --chown=quarkus:quarkus z3-cli/pom.xml /code/z3-cli/pom.xml
COPY --chown=quarkus:quarkus z3-cli/src /code/z3-cli/src

COPY --chown=quarkus:quarkus z3-domain/pom.xml /code/z3-domain/pom.xml
COPY --chown=quarkus:quarkus z3-domain/src /code/z3-domain/src

COPY --chown=quarkus:quarkus z3-infrastructure/pom.xml /code/z3-infrastructure/pom.xml
COPY --chown=quarkus:quarkus z3-infrastructure/src /code/z3-infrastructure/src

COPY --chown=quarkus:quarkus z3-shared/pom.xml /code/z3-shared/pom.xml
COPY --chown=quarkus:quarkus z3-shared/src /code/z3-shared/src

COPY --chown=quarkus:quarkus z3-statistics-domain/pom.xml /code/z3-statistics-domain/pom.xml
COPY --chown=quarkus:quarkus z3-statistics-domain/src /code/z3-statistics-domain/src

COPY --chown=quarkus:quarkus z3-statistics-infrastructure/pom.xml /code/z3-statistics-infrastructure/pom.xml
COPY --chown=quarkus:quarkus z3-statistics-infrastructure/src /code/z3-statistics-infrastructure/src

USER quarkus
WORKDIR /code
RUN ./mvnw package -DskipTests -Dquarkus.package.jar.type=uber-jar -s /mvn-settings.xml

FROM registry.access.redhat.com/ubi8/openjdk-21:1.20

ENV LANGUAGE='en_US:en'

COPY --from=build --chown=185 /code/z3-application/target/*-runner.jar /deployments/quarkus-run.jar

EXPOSE 8080
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" ]