From ed1c305cbb94ee1faa102c668fac2d65aef7bb1c Mon Sep 17 00:00:00 2001 From: Oleg Urin Date: Thu, 2 Apr 2026 11:44:35 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20docker,=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20gockerignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 9 +++++++++ Dockerfile | 33 ++++++++++++++++++++++++++++----- 2 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..5bdd9f0 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +node_modules +.forgejo +dist +.git +.env* +*.log +.DS_Store +coverage +.vite \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 3b74df8..d780e0d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,33 @@ -FROM mkenney/npm:node-11-alpine +# ========== СТАДИЯ 1: СБОРКА ========== +FROM node:20-alpine AS builder -WORKDIR /web/app +WORKDIR /app +# Копируем зависимости +COPY package*.json ./ +RUN npm ci + +# Копируем исходники COPY . . -RUN npm install -RUN npm cache clean --force +# Сборка проекта +RUN npm run build -CMD ["npm", "run", "dev"] +# ========== СТАДИЯ 2: СЕРВЕР ========== +FROM nginx:alpine + +# Копируем собранные файлы из стадии 1 +COPY --from=builder /app/dist /usr/share/nginx/html + +# Конфиг для SPA (чтобы react-router работал) +RUN echo 'server { \ + listen 80; \ + location / { \ + root /usr/share/nginx/html; \ + try_files $uri $uri/ /index.html; \ + } \ +}' > /etc/nginx/conf.d/default.conf + +EXPOSE 80 + +CMD ["nginx", "-g", "daemon off;"]