@@ -80,47 +80,9 @@ RUN mkdir -p /paperclip && chown node:node /paperclip
8080
8181WORKDIR /app
8282
83- # Copy only production node_modules (rebuilt as prod-only in build stage)
84- COPY --chown=node:node --from=build /app/node_modules ./node_modules
85- COPY --chown=node:node --from=build /app/package.json /app/pnpm-workspace.yaml /app/.npmrc ./
86-
87- # Server: only compiled output + runtime deps
88- COPY --chown=node:node --from=build /app/server/dist ./server/dist
89- COPY --chown=node:node --from=build /app/server/package.json ./server/
90- COPY --chown=node:node --from=build /app/server/node_modules ./server/node_modules
91-
92- # UI: only built static files
93- COPY --chown=node:node --from=build /app/ui/dist ./ui/dist
94-
95- # Shared packages: only dist output
96- COPY --chown=node:node --from=build /app/packages/shared/dist ./packages/shared/dist
97- COPY --chown=node:node --from=build /app/packages/shared/package.json ./packages/shared/
98- COPY --chown=node:node --from=build /app/packages/db/dist ./packages/db/dist
99- COPY --chown=node:node --from=build /app/packages/db/package.json ./packages/db/
100- COPY --chown=node:node --from=build /app/packages/adapter-utils/dist ./packages/adapter-utils/dist
101- COPY --chown=node:node --from=build /app/packages/adapter-utils/package.json ./packages/adapter-utils/
102- COPY --chown=node:node --from=build /app/packages/plugins/sdk/dist ./packages/plugins/sdk/dist
103- COPY --chown=node:node --from=build /app/packages/plugins/sdk/package.json ./packages/plugins/sdk/
104-
105- # Adapters: only dist output
106- COPY --chown=node:node --from=build /app/packages/adapters/claude-local/dist ./packages/adapters/claude-local/dist
107- COPY --chown=node:node --from=build /app/packages/adapters/claude-local/package.json ./packages/adapters/claude-local/
108- COPY --chown=node:node --from=build /app/packages/adapters/codex-local/dist ./packages/adapters/codex-local/dist
109- COPY --chown=node:node --from=build /app/packages/adapters/codex-local/package.json ./packages/adapters/codex-local/
110- COPY --chown=node:node --from=build /app/packages/adapters/cursor-local/dist ./packages/adapters/cursor-local/dist
111- COPY --chown=node:node --from=build /app/packages/adapters/cursor-local/package.json ./packages/adapters/cursor-local/
112- COPY --chown=node:node --from=build /app/packages/adapters/gemini-local/dist ./packages/adapters/gemini-local/dist
113- COPY --chown=node:node --from=build /app/packages/adapters/gemini-local/package.json ./packages/adapters/gemini-local/
114- COPY --chown=node:node --from=build /app/packages/adapters/openclaw-gateway/dist ./packages/adapters/openclaw-gateway/dist
115- COPY --chown=node:node --from=build /app/packages/adapters/openclaw-gateway/package.json ./packages/adapters/openclaw-gateway/
116- COPY --chown=node:node --from=build /app/packages/adapters/opencode-local/dist ./packages/adapters/opencode-local/dist
117- COPY --chown=node:node --from=build /app/packages/adapters/opencode-local/package.json ./packages/adapters/opencode-local/
118- COPY --chown=node:node --from=build /app/packages/adapters/pi-local/dist ./packages/adapters/pi-local/dist
119- COPY --chown=node:node --from=build /app/packages/adapters/pi-local/package.json ./packages/adapters/pi-local/
120-
121- # CLI
122- COPY --chown=node:node --from=build /app/cli/dist ./cli/dist
123- COPY --chown=node:node --from=build /app/cli/package.json ./cli/
83+ # Copy built app — tsx transpiles workspace TypeScript at runtime,
84+ # so source files must be present alongside dist output.
85+ COPY --chown=node:node --from=build /app /app
12486
12587ENV NODE_ENV=production \
12688 HOME=/paperclip \
0 commit comments