Docker Compose для Next.js (Standalone build) + Nginx SSL Termination
Готовый рецепт Docker Compose для деплоя Next.js 14/15 в режиме standalone output: минимальный размер Docker-образа (<120MB), Nginx SSL прокси.
Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
docker-compose.yml
# docker-compose.yml
version: '3.8'
services:
nextjs:
build:
context: .
dockerfile: Dockerfile
container_name: nextjs_app
restart: always
environment:
- NODE_ENV=production
- PORT=3000
networks:
- frontend
nginx:
image: nginx:alpine
container_name: nextjs_ssl_proxy
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
- ./ssl:/etc/nginx/ssl:ro
depends_on:
- nextjs
networks:
- frontend
networks:
frontend:
driver: bridge
Разбор ключевых директив конфигурации
Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).
| Директива / Блок | Рекомендуемое значение | Зачем нужно и системное влияние (CPU / RAM / I-O) |
|---|---|---|
Standalone output |
next.config.js output: 'standalone' | Собирает только используемые node_modules, уменьшая образ с 1.2 GB до 110 MB и ускоряя холодный старт контейнера. |
Рекомендуемые системные требования VDS под этот стек
Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.
Оптимальный сайзинг: 2 vCPU, 2-4 GB RAM, 30 GB NVMe
Расчетная нагрузка: Next.js SSR портал
Timeweb Cloud
2 CPU / 4 GB NVMe
Процессор:
2 vCPU
Память RAM:
2-4 GB RAM
Накопитель:
30 GB NVMe
Selectel
2 vCPU / 4 GB RAM
Процессор:
2 vCPU
Память RAM:
2-4 GB RAM
Накопитель:
30 GB NVMe
Beget
Turbo 4 GB
Процессор:
2 vCPU
Память RAM:
2-4 GB RAM
Накопитель:
30 GB NVMe
Онлайн-утилиты SysKit для проверки этого сервера
Протестируйте корректность применения конфигурации прямо сейчас в один клик.
Частые ошибки при настройке и их решение (FAQ)
Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.
Почему при сборке Standalone не копируются статические ассеты?
В Dockerfile обязательно скопируйте папку `.next/static` в `.next/standalone/.next/static` и `public` в `.next/standalone/public`.
Рекомендуемые смежные конфигурации
Дополнительные рецепты и калькуляторы для полной оптимизации данного серверного стека.