mirror of
https://github.com/jjbrunton/Sauci.git
synced 2026-10-31 18:19:43 +00:00
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.
44 lines
1.3 KiB
Docker
Executable File
44 lines
1.3 KiB
Docker
Executable File
FROM node:20-bookworm-slim AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy the npm workspace and install from its committed lockfile.
|
|
COPY . .
|
|
RUN npm ci
|
|
|
|
# Build shared package first
|
|
RUN npm run build -w @sauci/shared
|
|
|
|
# Build admin app with env vars
|
|
ARG VITE_SUPABASE_URL
|
|
ARG VITE_SUPABASE_ANON_KEY
|
|
ARG VITE_OPENAI_API_KEY
|
|
ARG VITE_OPENROUTER_API_KEY
|
|
ARG VITE_AI_MODEL
|
|
ARG VITE_AI_MODEL_GENERATE
|
|
ARG VITE_AI_MODEL_FIX
|
|
ARG VITE_AI_MODEL_POLISH
|
|
ARG VITE_COUNCIL_ENABLED
|
|
ARG VITE_COUNCIL_GENERATOR_MODEL
|
|
ARG VITE_COUNCIL_REVIEWER_MODEL
|
|
|
|
ENV VITE_SUPABASE_URL=$VITE_SUPABASE_URL
|
|
ENV VITE_SUPABASE_ANON_KEY=$VITE_SUPABASE_ANON_KEY
|
|
ENV VITE_OPENAI_API_KEY=$VITE_OPENAI_API_KEY
|
|
ENV VITE_OPENROUTER_API_KEY=$VITE_OPENROUTER_API_KEY
|
|
ENV VITE_AI_MODEL=$VITE_AI_MODEL
|
|
ENV VITE_AI_MODEL_GENERATE=$VITE_AI_MODEL_GENERATE
|
|
ENV VITE_AI_MODEL_FIX=$VITE_AI_MODEL_FIX
|
|
ENV VITE_AI_MODEL_POLISH=$VITE_AI_MODEL_POLISH
|
|
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 npm run build -w @sauci/admin
|
|
|
|
FROM nginx:alpine
|
|
COPY --from=builder /app/apps/admin/dist /usr/share/nginx/html
|
|
COPY --from=builder /app/apps/admin/nginx.conf /etc/nginx/conf.d/default.conf
|
|
EXPOSE 80
|
|
CMD ["nginx", "-g", "daemon off;"]
|