Files
finance-website/Dockerfile
T

35 lines
1.1 KiB
Docker

# Stage 1: Сборка фронтенда React + Vite
FROM node:20-slim AS frontend-builder
WORKDIR /app/frontend
COPY frontend/package*.json ./
RUN npm install
COPY frontend/ ./
RUN npm run build
# Stage 2: Запуск бэкенда Node.js и раздача собранной статики
FROM node:20-slim
WORKDIR /app/backend
# Установка зависимостей бэкенда (только production)
COPY backend/package*.json ./
RUN npm install --omit=dev
# Копирование исходного кода бэкенда
COPY backend/ ./
# Копирование собранного фронтенда в директорию, откуда бэкенд раздает статику
COPY --from=frontend-builder /app/frontend/dist ./dist
# Создание папки для персистентной базы данных SQLite
RUN mkdir -p /app/data
# Переменные окружения по умолчанию
ENV NODE_ENV=production
ENV PORT=5000
ENV DATABASE_PATH=/app/data/finance.db
EXPOSE 5000
# Запуск приложения
CMD ["node", "src/index.js"]