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
- Point docker-compose.images.yaml at registry.ulivargas.dev images - Add restart: unless-stopped to postgres/redis/minio - Restore dashboard build heap to 8GB (4GB caused vite OOM) - Use node:24.18.0-slim for jobs to share base layers
35 lines
1.2 KiB
Docker
35 lines
1.2 KiB
Docker
FROM node:24.18.0-slim
|
|
|
|
# ffmpeg is needed for media probe / thumbnail / audio-extract / transcode tasks.
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends ffmpeg ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
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 [email protected] --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. `pnpm
|
|
# fetch` populates the store for the whole lockfile, so no hand-maintained package
|
|
# list. Mirrors the api/dashboard images.
|
|
COPY pnpm-lock.yaml ./
|
|
RUN pnpm fetch --store-dir /pnpm/store
|
|
|
|
COPY . .
|
|
|
|
RUN pnpm install --offline --frozen-lockfile --ignore-scripts \
|
|
--store-dir /pnpm/store --filter @cio/jobs-worker...
|
|
RUN find . -name 'tsconfig.tsbuildinfo' -delete
|
|
# Build the worker and all its workspace deps in topological order.
|
|
RUN pnpm -r --filter @cio/jobs-worker... build
|
|
|
|
# Run all worker entrypoints by default. Override CMD to scale media / transcribe
|
|
# / maintenance independently.
|
|
CMD ["node", "apps/jobs/dist/index.js"]
|