| |
| FROM node:20 AS builder |
| WORKDIR /app |
| COPY package*.json ./ |
| RUN npm install |
| COPY . . |
|
|
| |
| RUN npm run build |
|
|
| |
| |
| |
| RUN npx esbuild server.ts --bundle --platform=node --format=esm --outfile=dist/server.js --external:express --external:socket.io --external:vite --external:mineflayer --external:mineflayer-pathfinder --external:@google/genai |
|
|
| |
| FROM node:20-slim |
| WORKDIR /app |
|
|
| |
| COPY --from=builder /app/package*.json ./ |
| |
| RUN npm install --omit=dev |
|
|
| |
| COPY --from=builder /app/dist ./dist |
|
|
| |
| RUN chown -R 1000:1000 /app |
| USER 1000 |
|
|
| ENV NODE_ENV=production |
| ENV PORT=7860 |
| EXPOSE 7860 |
|
|
| |
| CMD ["node", "dist/server.js"] |