diff options
| author | Kevin J Hoerr <kjhoerr@protonmail.com> | 2023-01-11 11:21:54 -0500 |
|---|---|---|
| committer | Kevin J Hoerr <kjhoerr@protonmail.com> | 2025-08-18 11:51:57 -0400 |
| commit | 29b077471b9dca1259bc89edfcca5747ed5cad9d (patch) | |
| tree | cda37d47ebbb20683a714d8dde69d14e3181c774 /src | |
| parent | 7c1646a24ec3466d15066b5af95ac1e33b87225d (diff) | |
| download | pantry-29b077471b9dca1259bc89edfcca5747ed5cad9d.tar.gz pantry-29b077471b9dca1259bc89edfcca5747ed5cad9d.tar.bz2 pantry-29b077471b9dca1259bc89edfcca5747ed5cad9d.zip | |
Simplify multistage based on Quinoa
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/docker/Dockerfile.multistage | 50 |
1 files changed, 11 insertions, 39 deletions
diff --git a/src/main/docker/Dockerfile.multistage b/src/main/docker/Dockerfile.multistage index a521a09..b1e3bba 100644 --- a/src/main/docker/Dockerfile.multistage +++ b/src/main/docker/Dockerfile.multistage @@ -1,48 +1,20 @@ -## Stage 1: install yarn dependencies from cache -FROM node:current AS base-yarn -WORKDIR /app -COPY package*.json ./ -COPY yarn.lock ./ -COPY .yarnrc.yml ./ -COPY .yarn ./.yarn -RUN yarn install --immutable --immutable-cache - -## Stage 2 : build with yarn -FROM base-yarn AS build-yarn -WORKDIR /app -COPY --from=base-yarn /app/package.json ./ -COPY --from=base-yarn /app/yarn.lock ./ -COPY --from=base-yarn /app/.yarnrc.yml ./ -COPY --from=base-yarn /app/.yarn/cache ./.yarn/cache -COPY --from=base-yarn /app/.yarn/plugins ./.yarn/plugins -COPY --from=base-yarn /app/.yarn/releases ./.yarn/releases -RUN yarn install -COPY next-env.d.ts /app -COPY next.config.js /app -COPY postcss.config.js /app -COPY tailwind.config.js /app -COPY tsconfig.json /app -COPY src /app/src -## outputs to /app/out -RUN yarn build - -## Stage 3 : build with maven builder image with native capabilities -FROM quay.io/quarkus/ubi-quarkus-graalvmce-builder-image:22.3-java17 AS build-quarkus -USER root -RUN microdnf -y install --nodocs maven +## Stage 1 : build with maven builder image with native capabilities - Quinoa will bake in the front-end +FROM quay.io/quarkus/ubi-quarkus-graalvmce-builder-image:22.3-java17 AS build +COPY --chown=quarkus:quarkus mvnw /code/mvnw +COPY --chown=quarkus:quarkus .mvn /code/.mvn COPY --chown=quarkus:quarkus pom.xml /code/ USER quarkus WORKDIR /code -RUN mvn -B org.apache.maven.plugins:maven-dependency-plugin:3.1.2:go-offline -COPY --from=build-yarn /app/out /code/src/main/resources/META-INF/resources -COPY src /code/src -RUN mvn -Pnative clean package +RUN ./mvnw -B org.apache.maven.plugins:maven-dependency-plugin:3.1.2:go-offline +ENV QUARKUS_QUINOA_PACKAGE_MANAGER_INSTALL=true QUARKUS_QUINOA_PACKAGE_MANAGER_INSTALL_NODE_VERSION=18.13.0 +COPY --chown=quarkus:quarkus . /code +RUN ./mvnw -Pnative clean package -## Stage 4 : create the docker final image +## Stage 2 : create the docker final image FROM quay.io/quarkus/quarkus-distroless-image:2.0 AS release -COPY --from=build-quarkus /code/target/*-runner /application +COPY --from=build /code/target/*-runner /application EXPOSE 8080 USER nonroot -CMD ["./application", "-XX:+PrintGC", "-XX:+PrintGCTimeStamps", "-XX:+VerboseGC", "+XX:+PrintHeapShape", "-Xmx128m", "-Dquarkus.http.host=0.0.0.0"] +CMD ["/application", "-XX:+PrintGC", "-XX:+PrintGCTimeStamps", "-XX:+VerboseGC", "+XX:+PrintHeapShape", "-Xmx128m", "-Dquarkus.http.host=0.0.0.0"] |
