Dockerfile
# Options
## La version de l'application (le .jar)
ARG APP_VERSION="0.0.1-SNAPSHOT"
## La version de gradle
ARG GRADLE_VERSION="8.7"
## La version du java-runtime
ARG JRE_VERSION="17"
# Image qui va créer le .jar
FROM gradle:${GRADLE_VERSION} AS builder
WORKDIR /app
# On copie tout ce qu'on a
COPY . /app
# Build le .jar
RUN gradle assemble
# Image qui va run le code
FROM ubuntu
# Répétition pour cette image
ARG APP_VERSION
ARG JRE_VERSION
EXPOSE 8761
WORKDIR /app
# Update + installation de la JRE-17
RUN apt update && apt upgrade -y && apt install curl openjdk-${JRE_VERSION}-jre -y
# On copie les .jar qu'on a build (todo: prendre auto que la version sans le "-plain")
COPY --from=builder /app/build/libs/gateway-${APP_VERSION}.jar .
# On transforme la ARG en ENV pour qu'on puisse l'utiliser dans l'entrypoint
ENV APP_VERSION_ENV=${APP_VERSION}
# Lancement du .jar
ENTRYPOINT java -jar gateway-$APP_VERSION_ENV.jar