Files
classroomio/docker/Dockerfile.dashboard
T

45 lines
1.4 KiB
Docker
Raw Normal View History

2026-03-09 11:18:22 +01:00
FROM node:20.19.3-slim
WORKDIR /app
2026-03-09 11:18:22 +01:00
ENV CI=true
2026-03-09 11:18:22 +01:00
ARG PUBLIC_IS_SELFHOSTED=true
ARG PUBLIC_SERVER_URL
ARG ALLOWED_EXTERNAL_DOMAINS
ARG CSP_SCRIPT_SRC_DOMAINS
ARG CSP_STYLE_SRC_DOMAINS
ARG CSP_CONNECT_SRC_DOMAINS
ARG CSP_FRAME_SRC_DOMAINS
ARG CSP_FONT_SRC_DOMAINS
2026-03-09 11:18:22 +01:00
RUN corepack enable && corepack prepare pnpm@10.19.0 --activate
COPY . .
RUN pnpm install --frozen-lockfile --ignore-scripts --shamefully-hoist --filter @cio/dashboard...
RUN find . -name 'tsconfig.tsbuildinfo' -delete
RUN echo "Dashboard build PUBLIC_IS_SELFHOSTED=${PUBLIC_IS_SELFHOSTED}" && \
echo "Dashboard build PUBLIC_SERVER_URL=${PUBLIC_SERVER_URL}" && \
NODE_OPTIONS="--max-old-space-size=3072" \
PUBLIC_IS_SELFHOSTED="${PUBLIC_IS_SELFHOSTED}" \
PUBLIC_SERVER_URL="${PUBLIC_SERVER_URL}" \
ALLOWED_EXTERNAL_DOMAINS="${ALLOWED_EXTERNAL_DOMAINS}" \
CSP_SCRIPT_SRC_DOMAINS="${CSP_SCRIPT_SRC_DOMAINS}" \
CSP_STYLE_SRC_DOMAINS="${CSP_STYLE_SRC_DOMAINS}" \
CSP_CONNECT_SRC_DOMAINS="${CSP_CONNECT_SRC_DOMAINS}" \
CSP_FRAME_SRC_DOMAINS="${CSP_FRAME_SRC_DOMAINS}" \
CSP_FONT_SRC_DOMAINS="${CSP_FONT_SRC_DOMAINS}" \
pnpm -r --filter @cio/dashboard... build
RUN test -f apps/dashboard/build/index.js || (echo "ERROR: Dashboard build output not found at apps/dashboard/build/index.js" && exit 1)
EXPOSE 3082
2026-03-09 11:18:22 +01:00
ENV NODE_ENV=production \
PORT=3082 \
PUBLIC_IS_SELFHOSTED=true
2026-03-09 11:18:22 +01:00
WORKDIR /app/apps/dashboard
CMD ["node", "build/index.js"]