From 7545289dd3982e48bc542b226e4013cfd13abcd4 Mon Sep 17 00:00:00 2001 From: jjbrunton Date: Thu, 27 Aug 2026 21:49:42 +0100 Subject: [PATCH] fix(admin): use npm workspace in Docker Align admin production and development images with the repository's committed npm workspace and lockfile. This ensures shared and Expo-linked dependencies are installed before the admin build runs. --- apps/admin/Dockerfile | 15 ++++----------- apps/admin/Dockerfile.dev | 27 ++++----------------------- 2 files changed, 8 insertions(+), 34 deletions(-) diff --git a/apps/admin/Dockerfile b/apps/admin/Dockerfile index 02ce1fa..5198254 100755 --- a/apps/admin/Dockerfile +++ b/apps/admin/Dockerfile @@ -2,19 +2,12 @@ FROM node:20-bookworm-slim AS builder WORKDIR /app -# Enable pnpm via corepack (allow non-matching packageManager) -ENV COREPACK_ENABLE_STRICT=0 -ENV PNPM_CONFIG_LINK_WORKSPACE_PACKAGES=true -RUN corepack enable && corepack prepare pnpm@9.15.0 --activate - -# Copy everything first (workspaces need full structure) +# Copy the npm workspace and install from its committed lockfile. COPY . . - -# Install all dependencies -RUN pnpm install --no-frozen-lockfile +RUN npm ci # Build shared package first -RUN pnpm exec turbo run build --filter=@sauci/shared +RUN npm run build -w @sauci/shared # Build admin app with env vars ARG VITE_SUPABASE_URL @@ -41,7 +34,7 @@ ENV VITE_COUNCIL_ENABLED=$VITE_COUNCIL_ENABLED ENV VITE_COUNCIL_GENERATOR_MODEL=$VITE_COUNCIL_GENERATOR_MODEL ENV VITE_COUNCIL_REVIEWER_MODEL=$VITE_COUNCIL_REVIEWER_MODEL -RUN pnpm exec turbo run build --filter=@sauci/admin +RUN npm run build -w @sauci/admin FROM nginx:alpine COPY --from=builder /app/apps/admin/dist /usr/share/nginx/html diff --git a/apps/admin/Dockerfile.dev b/apps/admin/Dockerfile.dev index 82e6588..948046d 100644 --- a/apps/admin/Dockerfile.dev +++ b/apps/admin/Dockerfile.dev @@ -2,34 +2,15 @@ FROM node:20-bookworm-slim WORKDIR /app -# Enable pnpm via corepack (allow non-matching packageManager) -ENV COREPACK_ENABLE_STRICT=0 -ENV PNPM_CONFIG_LINK_WORKSPACE_PACKAGES=true -RUN corepack enable && corepack prepare pnpm@9.15.0 --activate - -# Copy root package files and workspace configs -COPY package*.json ./ -COPY pnpm-workspace.yaml ./ -COPY turbo.json ./ - -# Copy all workspace package.json files -COPY apps/admin/package.json ./apps/admin/ -COPY apps/mobile/package.json ./apps/mobile/ -COPY apps/supabase/package.json ./apps/supabase/ -COPY apps/web/package.json ./apps/web/ -COPY packages/shared/package.json ./packages/shared/ - -# Install all dependencies at root level (workspaces) -RUN pnpm install --no-frozen-lockfile - -# Copy all source code +# Install the complete npm workspace from its committed lockfile. COPY . . +RUN npm ci # Build shared package -RUN pnpm exec turbo run build --filter=@sauci/shared +RUN npm run build -w @sauci/shared WORKDIR /app/apps/admin EXPOSE 3001 -CMD ["pnpm", "run", "dev"] +CMD ["npm", "run", "dev"]