Files
porthole/apps/web/Dockerfile
OpenCode Test e1a64aa092 Initial commit
2025-12-24 10:50:10 -08:00

39 lines
1.2 KiB
Docker

# 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 --ignore-scripts
FROM deps AS builder
WORKDIR /app
COPY apps/web ./apps/web
COPY packages ./packages
# Build Next standalone output
RUN bun run --cwd apps/web build
FROM node:20-bookworm-slim AS runner
WORKDIR /app
ENV NODE_ENV=production
# Next standalone output contains its own node_modules tree.
# With outputFileTracingRoot set, standalone output nests under the basename
# of that tracing root ("app" inside this Docker build).
COPY --from=builder /app/apps/web/.next/standalone ./
COPY --from=builder /app/apps/web/.next/static ./app/apps/web/.next/static
EXPOSE 3000
CMD ["node", "app/apps/web/server.js"]