fix(docker): reorder build stages so web-build comes after its --from= sources #2
1 changed files with 31 additions and 23 deletions
|
|
@ -39,6 +39,37 @@ COPY packages/ai/package.json ./packages/ai/
|
||||||
RUN pnpm install --frozen-lockfile
|
RUN pnpm install --frozen-lockfile
|
||||||
|
|
||||||
|
|
||||||
|
# NOTE: Stage order matters. `web-build` must be defined AFTER `collab-build`
|
||||||
|
# and `mcp-build` because it `COPY --from=`s them to force BuildKit to
|
||||||
|
# finish the light tsup builds before starting the heavy Next.js compile.
|
||||||
|
# Coolify's builder requires stages referenced via `--from=` to be defined
|
||||||
|
# above the referencing stage; forward references fail with "cannot copy
|
||||||
|
# from stage X, it needs to be defined before current stage Y".
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# collab-build — tsup build for Hocuspocus server
|
||||||
|
# ============================================================================
|
||||||
|
FROM deps AS collab-build
|
||||||
|
COPY apps/collab-server ./apps/collab-server
|
||||||
|
COPY packages/database ./packages/database
|
||||||
|
|
||||||
|
ENV NODE_ENV=production
|
||||||
|
RUN pnpm exec turbo build --filter=@tasks/collab-server
|
||||||
|
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# mcp-build — tsup build for MCP server
|
||||||
|
# ============================================================================
|
||||||
|
FROM deps AS mcp-build
|
||||||
|
COPY apps/mcp-server ./apps/mcp-server
|
||||||
|
COPY packages/database ./packages/database
|
||||||
|
COPY packages/shared ./packages/shared
|
||||||
|
|
||||||
|
ENV NODE_ENV=production
|
||||||
|
RUN pnpm exec turbo build --filter=@tasks/mcp-server
|
||||||
|
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
# web-build — Next.js production build → standalone output
|
# web-build — Next.js production build → standalone output
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|
@ -69,29 +100,6 @@ ENV NODE_OPTIONS=--max-old-space-size=5120
|
||||||
RUN pnpm exec turbo build --filter=@tasks/web
|
RUN pnpm exec turbo build --filter=@tasks/web
|
||||||
|
|
||||||
|
|
||||||
# ============================================================================
|
|
||||||
# collab-build — tsup build for Hocuspocus server
|
|
||||||
# ============================================================================
|
|
||||||
FROM deps AS collab-build
|
|
||||||
COPY apps/collab-server ./apps/collab-server
|
|
||||||
COPY packages/database ./packages/database
|
|
||||||
|
|
||||||
ENV NODE_ENV=production
|
|
||||||
RUN pnpm exec turbo build --filter=@tasks/collab-server
|
|
||||||
|
|
||||||
|
|
||||||
# ============================================================================
|
|
||||||
# mcp-build — tsup build for MCP server
|
|
||||||
# ============================================================================
|
|
||||||
FROM deps AS mcp-build
|
|
||||||
COPY apps/mcp-server ./apps/mcp-server
|
|
||||||
COPY packages/database ./packages/database
|
|
||||||
COPY packages/shared ./packages/shared
|
|
||||||
|
|
||||||
ENV NODE_ENV=production
|
|
||||||
RUN pnpm exec turbo build --filter=@tasks/mcp-server
|
|
||||||
|
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
# web — runtime image (Next.js standalone)
|
# web — runtime image (Next.js standalone)
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue