СкиллДеплой

docker-deploy

Деплой на VPS через Docker: multi-stage build, docker-compose, Nginx reverse proxy, SSL, health checks.

Закинь в Claude, Cursor или любой AI

Описание

Простым языком

Сделал сайт локально — теперь надо выложить в интернет. Звучит страшно, но этот скилл делает всё за тебя. Docker — это как коробка, в которую упакован твой сайт. Её можно перенести на любой сервер и он заработает.

Скажи Claude адрес сервера и домен — и через несколько минут сайт будет доступен по ссылке с защищённым соединением. Если что-то сломается — один клик и всё вернётся как было.


Что делает

Скилл docker-deploy настраивает Docker-деплой для любого стека: пишет Dockerfile, docker-compose.yml, настраивает nginx, SSL через certbot, systemd-автозапуск и GitHub Actions для CI/CD.

Один промпт — и у тебя полная цепочка: push → build → deploy → healthy. Rollback за 30 секунд.


Когда использовать

  • Деплоишь проект на VPS впервые
  • Переносишь проект с одного сервера на другой
  • Настраиваешь CI/CD pipeline через GitHub Actions
  • Нужен zero-downtime деплой через docker compose up --no-deps --build
  • Настраиваешь multi-container app (app + postgres + redis + nginx)

Как работает — пошагово

  1. Claude анализирует стек: Node.js/Python/Go — выбирает правильный базовый образ
  2. Пишет многоступенчатый Dockerfile: builder + runner для минимального размера
  3. Настраивает docker-compose.yml: app + зависимости (postgres, redis)
  4. Конфигурирует nginx как reverse proxy с HTTP→HTTPS редиректом
  5. Настраивает certbot для автоматического получения и обновления SSL
  6. Добавляет healthcheck в docker-compose.yml для мониторинга
  7. Пишет GitHub Actions workflow: push → SSH → pull → build → up

Промпты для Claude

Настрой Docker-деплой для Next.js 14 + Payload CMS проекта.
Сервер: Ubuntu 22.04, IP: 109.172.36.108
Домен: stackovervibe.ru
БД: PostgreSQL 15 (в отдельном контейнере)
SSL: Let's Encrypt
CI/CD: GitHub Actions → SSH-деплой
Обнови docker-compose.yml — добавь Redis для кэширования.
redis:7-alpine, порт 6379, данные в volume.
App должен ждать redis (depends_on + healthcheck).

Пример Dockerfile

# Dockerfile — многоступенчатая сборка Next.js
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build

FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
COPY --from=builder /app/public ./public
EXPOSE 3000
CMD ["node", "server.js"]

Автоматизация CI/CD

# .github/workflows/deploy.yml
jobs:
  deploy:
    runs-on: self-hosted
    steps:
      - uses: actions/checkout@v4
      - name: Deploy
        run: |
          ssh deploy@109.172.36.108 \
            "cd /home/claude/stackovervibe && \
             git pull && \
             docker compose up -d --build --no-deps app && \
             docker compose exec app npx prisma migrate deploy"

Частые вопросы

Как откатить деплой если что-то сломалось?

git revert HEAD && git push — запустит CI который задеплоит предыдущую версию. Или вручную: ssh server "cd /app && git checkout HEAD~1 && docker compose up -d --build".

Как проверить что деплой прошёл успешно?

Claude добавляет healthcheck: curl -f http://localhost:3000/api/health в docker-compose.yml. Если контейнер не отвечает за 30с — Docker перезапустит его автоматически.

#Skills#Docker#Nginx#SSL
TG

> Пока нет комментариев

Связанный контент

Похожие инструменты