From c0d6bd454890518d3769b7bb054ad3f591107ad9 Mon Sep 17 00:00:00 2001 From: lilly Date: Tue, 19 May 2026 16:44:18 +0200 Subject: [PATCH] restructure dockerfile to not have npm dependencies in final image --- Containerfile | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/Containerfile b/Containerfile index 1a1812f..2c73422 100644 --- a/Containerfile +++ b/Containerfile @@ -1,3 +1,16 @@ +FROM docker.io/alpine:3.22 AS build-frontend +ENV PNPM_HOME=/usr/local/share/dooris/pnpm/ +WORKDIR /usr/local/src/dooris/ +RUN apk add --no-cache pnpm + +ADD --link app/package.json app/pnpm-lock.yaml app/ +RUN pnpm --dir=app/ install --frozen-lockfile --package-import-method=copy + +ADD --link . /usr/local/src/dooris/ +RUN pnpm --dir=app/ run build + + + FROM docker.io/alpine:3.22 AS base ARG APP_UID=10000 @@ -9,12 +22,11 @@ ENV UV_LINK_MODE=copy ENV UV_CACHE_DIR=/var/cache/dooris/uv/ ENV UV_NO_MANAGED_PYTHON=true ENV VIRTUAL_ENV=/usr/local/share/dooris/venv/ -ENV PNPM_HOME=/usr/local/share/dooris/pnpm/ -ENV PATH=$PNPM_HOME:$VIRTUAL_ENV/bin:$PATH +ENV PATH=$VIRTUAL_ENV/bin:$PATH ENV DOORIS_SERVE_STATIC=/var/www/dooris/static/ WORKDIR /usr/local/src/dooris/ -RUN apk add --no-cache uv python3 pnpm +RUN apk add --no-cache uv python3 RUN addgroup -g $APP_GID dooris &&\ adduser -h /usr/local/src/dooris -u $APP_UID -G dooris -D dooris &&\ mkdir -p /var/www/dooris/ /usr/local/share/dooris/ /usr/local/src/dooris/ /var/cache/dooris/ &&\ @@ -25,16 +37,14 @@ RUN addgroup -g $APP_GID dooris &&\ FROM base AS deps USER dooris ADD --link --chown=dooris:dooris api/pyproject.toml api/uv.lock api/ -ADD --link --chown=dooris:dooris app/package.json app/pnpm-lock.yaml app/ RUN uv venv $VIRTUAL_ENV &&\ uv sync --active --frozen --no-install-project --no-editable -RUN pnpm --dir=app/ install --frozen-lockfile --package-import-method=copy FROM deps AS final ADD --chown=dooris:dooris --link . /usr/local/src/dooris/ -RUN pnpm --dir=app/ run build --outDir=$DOORIS_SERVE_STATIC +COPY --chown=dooris:dooris --from=build-frontend --link /usr/local/src/dooris/app/dist/ $DOORIS_SERVE_STATIC RUN --mount=type=cache,uid=$APP_UID,gid=$APP_GID,target=$UV_CACHE_DIR \ uv sync --active --frozen