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:
@@ -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"]
|
||||
|
||||
@@ -19,13 +19,13 @@
|
||||
"drizzle-orm": "^0.44.2",
|
||||
"hono": "^4.7.10",
|
||||
"postgres": "^3.4.7",
|
||||
"tsx": "^4.19.4",
|
||||
"uuid": "^11.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ai-tycoon/tsconfig": "workspace:*",
|
||||
"@types/node": "^25.6.0",
|
||||
"drizzle-kit": "^0.31.1",
|
||||
"tsx": "^4.19.4",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user