From 14548e7a593940cbb9ea734a47e0ae79bf41ef5b Mon Sep 17 00:00:00 2001 From: Bivekich Date: Tue, 8 Apr 2025 01:40:28 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D1=8B=20?= =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8?= =?UTF-8?q?=D0=B3=D1=83=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20Docker=20(docker-c?= =?UTF-8?q?ompose.yml=20=D0=B8=20Dockerfile)=20=D0=B4=D0=BB=D1=8F=20=D1=83?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D1=89=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=D1=82?= =?UTF-8?q?=D1=80=D1=83=D0=BA=D1=82=D1=83=D1=80=D1=8B=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=B0=20=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D1=85=D0=BE=D0=B4=D0=B0=20=D0=BD=D0=B0=20=D0=B8=D1=81=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?PM2=20=D0=B4=D0=BB=D1=8F=20=D1=83=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D1=80=D0=BE=D1=86=D0=B5=D1=81?= =?UTF-8?q?=D1=81=D0=B0=D0=BC=D0=B8.=20=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=8B=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82?= =?UTF-8?q?=D1=8B=20=D0=B2=20package.json=20=D0=B4=D0=BB=D1=8F=20=D0=B8?= =?UTF-8?q?=D0=BD=D1=82=D0=B5=D0=B3=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20=D1=81?= =?UTF-8?q?=20PM2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 41 ----------------------------------------- docker-compose.yml | 25 ------------------------- ecosystem.config.js | 9 +++++++++ package.json | 7 ++++++- 4 files changed, 15 insertions(+), 67 deletions(-) delete mode 100644 Dockerfile delete mode 100644 docker-compose.yml create mode 100644 ecosystem.config.js diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 96bf810..0000000 --- a/Dockerfile +++ /dev/null @@ -1,41 +0,0 @@ -# Используем Node.js как базовый образ -FROM node:20-alpine AS base - -# Устанавливаем зависимости для сборки -FROM base AS deps -WORKDIR /app -COPY package.json package-lock.json ./ -RUN npm install --legacy-peer-deps - -# Сборка приложения -FROM base AS builder -WORKDIR /app -COPY --from=deps /app/node_modules ./node_modules -COPY . . -RUN npm run build - -# Производственный образ -FROM base AS runner -WORKDIR /app - -ENV NODE_ENV production - -# Создаем пользователя nextjs -RUN addgroup --system --gid 1001 nodejs -RUN adduser --system --uid 1001 nextjs - -# Копируем необходимые файлы -COPY --from=builder /app/public ./public -COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ -COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static - -# Переключаемся на пользователя nextjs -USER nextjs - -# Открываем порт -EXPOSE 3000 - -ENV PORT 3000 -ENV HOSTNAME 0.0.0.0 - -CMD ["node", "server.js"] diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index d27def6..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,25 +0,0 @@ -version: '3.8' - -services: - web: - build: - context: . - dockerfile: Dockerfile - ports: - - '3000:3000' - restart: always - environment: - - NODE_ENV=production - healthcheck: - test: - [ - 'CMD', - 'wget', - '--no-verbose', - '--tries=1', - '--spider', - 'http://localhost:3000', - ] - interval: 30s - timeout: 10s - retries: 3 diff --git a/ecosystem.config.js b/ecosystem.config.js new file mode 100644 index 0000000..7d59638 --- /dev/null +++ b/ecosystem.config.js @@ -0,0 +1,9 @@ +module.exports = { + apps: [ + { + name: 'cke', // Замените на имя вашего приложения, если необходимо + script: 'npm', + args: 'run start', + }, + ], +}; diff --git a/package.json b/package.json index ef890af..3c8bb20 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,11 @@ "dev": "next dev --turbopack", "build": "next build", "start": "next start", - "lint": "next lint" + "lint": "next lint", + "pm2:start": "pm2 start ecosystem.config.js", + "pm2:stop": "pm2 stop ecosystem.config.js", + "pm2:restart": "pm2 restart ecosystem.config.js", + "pm2:delete": "pm2 delete ecosystem.config.js" }, "dependencies": { "@radix-ui/react-dropdown-menu": "^2.1.6", @@ -31,6 +35,7 @@ "@types/react-input-mask": "^3.0.6", "eslint": "^9", "eslint-config-next": "15.1.6", + "pm2": "^5.4.0", "postcss": "^8", "tailwindcss": "^3.4.1", "typescript": "^5"