Fix Docker production build: move tsx to dependencies, reinstall in production stage

The production Docker stage was copying pnpm symlinks between stages
which broke module resolution. Now does a fresh pnpm install --prod
in the production stage and runs from the server working directory.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-27 19:33:16 -04:00
parent 4881907c28
commit a061337d6f
3 changed files with 8 additions and 8 deletions
+4 -4
View File
@@ -18,12 +18,12 @@ RUN pnpm --filter @ai-tycoon/shared build && \
pnpm --filter @ai-tycoon/server typecheck
FROM base AS production
COPY --from=deps /app/node_modules ./node_modules
COPY --from=deps /app/packages/shared/node_modules ./packages/shared/node_modules
COPY --from=deps /app/apps/server/node_modules ./apps/server/node_modules
COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./
COPY packages/shared ./packages/shared
COPY packages/tsconfig ./packages/tsconfig
COPY apps/server ./apps/server
RUN pnpm install --frozen-lockfile --prod
ENV NODE_ENV=production
EXPOSE 3001
CMD ["node", "--import", "tsx", "apps/server/src/index.ts"]
WORKDIR /app/apps/server
CMD ["node", "--import", "tsx", "src/index.ts"]