Files
classroomio/docker/Dockerfile.api
T
Ulises Vargas 4348e89860
Publish Docker Images / Smoke test (api) (push) Canceled after 0s
Publish Docker Images / Smoke test (dashboard) (push) Canceled after 0s
Publish Docker Images / Smoke test (jobs) (push) Canceled after 0s
Publish Docker Images / build-and-push (./docker/Dockerfile.api, api, api) (push) Canceled after 0s
Publish Docker Images / build-and-push (./docker/Dockerfile.dashboard, dashboard, dashboard) (push) Canceled after 0s
Publish Docker Images / build-and-push (./docker/Dockerfile.jobs, jobs, jobs) (push) Canceled after 0s
MCP package build check / build (push) Canceled after 0s
Package build check / build (push) Canceled after 0s
Upload OpenAPI Spec to R2 / generate-and-upload-openapi (push) Canceled after 0s
chore: prepare for deployment
2026-08-24 08:56:48 -07:00

33 lines
859 B
Docker

FROM node:24.18.0-slim
WORKDIR /app
# Keep install non-interactive and deterministic in CI/container contexts.
ENV CI=true
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable && corepack prepare pnpm@10.19.0 --activate
# Fetch deps from the lockfile first (cached unless pnpm-lock.yaml changes); the
# store is baked into this layer and reused by the offline install below.
COPY pnpm-lock.yaml ./
RUN pnpm fetch --store-dir /pnpm/store
COPY . .
RUN pnpm install --offline --frozen-lockfile --ignore-scripts --shamefully-hoist \
--store-dir /pnpm/store --filter @cio/api...
RUN find . -name 'tsconfig.tsbuildinfo' -delete
RUN pnpm -r --filter @cio/api... build
COPY docker/entrypoint-api.sh /app/entrypoint.sh
RUN chmod +x /app/entrypoint.sh
EXPOSE 3081
ENV NODE_ENV=production \
PORT=3081
ENTRYPOINT ["/app/entrypoint.sh"]