# syntax=docker/dockerfile:1 FROM oven/bun:1.3.3 AS deps WORKDIR /app # Workspace manifests (copy all workspace package.json files so Bun # can resolve workspace:* deps without mutating the lockfile). COPY package.json bun.lock tsconfig.base.json ./ COPY apps/web/package.json ./apps/web/package.json COPY apps/worker/package.json ./apps/worker/package.json COPY packages/config/package.json ./packages/config/package.json COPY packages/db/package.json ./packages/db/package.json COPY packages/minio/package.json ./packages/minio/package.json COPY packages/queue/package.json ./packages/queue/package.json RUN bun install --frozen-lockfile --production --ignore-scripts FROM oven/bun:1.3.3 AS runner WORKDIR /app # Media tooling for worker pipeline RUN apt-get update \ && apt-get install -y --no-install-recommends ffmpeg libimage-exiftool-perl ca-certificates \ && rm -rf /var/lib/apt/lists/* ENV NODE_ENV=production COPY --from=deps /app/node_modules ./node_modules COPY --from=deps /app/package.json ./package.json COPY --from=deps /app/bun.lock ./bun.lock COPY apps/worker ./apps/worker COPY packages ./packages CMD ["bun", "--cwd", "apps/worker", "run", "start"]