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