From 31a8d1f7d23800907f6a2a157c55b8cab667fc39 Mon Sep 17 00:00:00 2001 From: anibilag Date: Thu, 17 Jul 2025 20:03:29 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=B5=D1=80=D1=81=D0=B8=D1=8F=200.5.9=20?= =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=20Docker?= =?UTF-8?q?file=20=D1=81=20=D1=83=D1=87=D0=B5=D1=82=D0=BE=D0=BC=20=D1=81?= =?UTF-8?q?=D1=82=D1=80=D1=83=D0=BA=D1=82=D1=83=D1=80=D1=8B=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B5=D0=BA=D1=82=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 34 +++++++++++++++++++--------------- package.json | 2 +- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8499268..4d7efe0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,48 +1,52 @@ -# Multi-stage build for production +# Stage 1: Frontend build FROM node:20-alpine AS frontend-build -WORKDIR /app/frontend +WORKDIR /app + +# Копируем только frontend-зависимости COPY package*.json ./ RUN npm ci +# Копируем весь проект (vite.config.ts, src/, public/, и т.д.) COPY . . + +# Сборка фронтенда RUN npm run build -# Backend build stage +# Stage 2: Backend build FROM node:20-alpine AS backend-build -WORKDIR /app/backend +WORKDIR /app + COPY package*.json ./ RUN npm ci --only=production +# Копируем сервер COPY server/ ./server/ -COPY package.json ./ -# Production stage +# Stage 3: Final production image FROM node:20-alpine AS production WORKDIR /app -# Install backend dependencies +# Установка production-зависимостей COPY package*.json ./ RUN npm ci --only=production && npm cache clean --force -# Copy backend files +# Копируем backend COPY server/ ./server/ -# Copy built frontend files -COPY --from=frontend-build /app/frontend/dist ./public +# Копируем собранный frontend +COPY --from=frontend-build /app/dist ./public -# Create uploads directory +# Создаём каталог для загрузок RUN mkdir -p uploads -# Create non-root user +# Создаём non-root user RUN addgroup -g 1001 -S nodejs && adduser -S nodejs -u 1001 - -# Change ownership of app directory RUN chown -R nodejs:nodejs /app USER nodejs EXPOSE 3001 -CMD ["node", "server/index.js"] \ No newline at end of file +CMD ["node", "server/index.js"] diff --git a/package.json b/package.json index 7aa1d11..a395761 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "lawn-mowing-scheduler", "private": true, - "version": "0.5.8", + "version": "0.5.9", "type": "module", "scripts": { "dev": "concurrently \"npm run server\" \"npm run client\"",