Ctrl K
ComunidadGuías…

docker/Dockerfile.api

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
FROM node:24.22.1-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

# classroomio.sh checks this before moving an install onto the bundled SeaweedFS store.
LABEL com.classroomio.storage.seaweedfs-ready="true"

ENTRYPOINT ["/app/entrypoint.sh"]