AIBuilder / Dockerfile
Sk0lovek's picture
Update Dockerfile
37aef68 verified
Raw
History Blame Contribute Delete
1.32 kB
# --- Этап 1: Сборка ---
FROM node:20 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
# Сборка фронтенда (Vite)
RUN npm run build
# Сборка сервера с помощью esbuild (игнорируя ошибки типов)
# Мы помечаем зависимости как 'external', чтобы они не вшивались в один файл,
# так как мы все равно сделаем npm install в финальном образе.
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
# --- Этап 2: Запуск ---
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
# Запускаем готовый JS
CMD ["node", "dist/server.js"]