FROM ghcr.io/jqlang/jq:latest AS jq-stage FROM eclipse-temurin:21-jdk AS build COPY --from=jq-stage /jq /usr/bin/jq # Test that jq works after copying RUN jq --version ENV HOME=/app RUN mkdir -p $HOME WORKDIR $HOME COPY . $HOME # If you have a Vaadin Pro key, pass it as a secret with id "proKey": # # $ docker build --secret id=proKey,src=$HOME/.vaadin/proKey . # # If you have a Vaadin Offline key, pass it as a secret with id "offlineKey": # # $ docker build --secret id=offlineKey,src=$HOME/.vaadin/offlineKey . RUN --mount=type=cache,target=/root/.m2 \ --mount=type=secret,id=proKey \ --mount=type=secret,id=offlineKey \ sh -c 'PRO_KEY=$(jq -r ".proKey // empty" /run/secrets/proKey 2>/dev/null || echo "") && \ OFFLINE_KEY=$(cat /run/secrets/offlineKey 2>/dev/null || echo "") && \ ./mvnw clean package -Pproduction -DskipTests -Dvaadin.proKey=${PRO_KEY} -Dvaadin.offlineKey=${OFFLINE_KEY}' FROM eclipse-temurin:21-jre-alpine COPY --from=build /app/target/*.jar app.jar ENTRYPOINT ["java", "-jar", "/app.jar", "--spring.profiles.active=prod"]