Введение: почему Docker-промты — это не просто модный тренд
Docker стал стандартом де-факто для упаковки и доставки приложений в 2026 году. Согласно отчёту Docker State of Application Development 2025, более 75% профессиональных разработчиков используют контейнеры ежедневно. Однако написание эффективного Dockerfile или docker-compose.yml часто превращается в рутину, отнимающую часы на отладку кэширования, слоёв и зависимостей.
Промты (промпты) для AI-ассистентов — это не магия, а структурированные инструкции, которые позволяют за секунды получать рабочие шаблоны. В этой статье я собрал 10 готовых промтов, которые покрывают 90% реальных задач: от создания минимального Dockerfile до оптимизации multi-stage сборок и настройки production-кластеров. Каждый промт сопровождается пояснением и примером использования.
1. Минимальный Dockerfile для Node.js (production-ready)
Для чего: Быстрое создание легковесного образа для Express.js или Nest.js приложения с учётом best practices Docker 2026.
Промт:
Сгенерируй production-ready Dockerfile для Node.js 20 приложения (Express.js).
Требования:
- Используй официальный образ node:20-alpine
- Установи только production-зависимости (npm ci --only=production)
- Добавь non-root пользователя (node)
- Настрой healthcheck (curl localhost:3000/health)
- Минимизируй количество слоёв
- Добавь .dockerignore для node_modules, .env, .git
Выведи готовый Dockerfile и .dockerignore.
Пример использования:
Скопируйте промт в ChatGPT, Claude или Gemini. Результат — готовый файл, который можно сразу использовать в CI/CD. Для популярных фреймворков AI-ассистенты на основе этого промта создают образы размером 120–150 МБ против типичных 400+ МБ.
2. Multi-stage сборка для Go-приложения
Для чего: Создание образа Go-приложения, где первый этап собирает бинарник, а второй — минимальный scratch-образ.
Промт:
Напиши multi-stage Dockerfile для Go 1.22 приложения.
Stage 1 (builder):
- Используй golang:1.22-alpine
- Скопируй go.mod и go.sum, выполни go mod download
- Скопируй весь код, собери статический бинарник (CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o /app)
Stage 2 (runtime):
- Используй scratch
- Скопируй /app из builder
- Добавь сертификаты (COPY --from=alpine:latest /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/)
- Expose порт 8080
- Запусти бинарник как ENTRYPOINT
Добавь комментарии к каждому шагу.
Пример использования:
Промт идеален для микросервисов на Go. Результирующий образ весит ~10–15 МБ (против 300+ МБ без multi-stage). Это критично для Kubernetes, где каждый мегабайт влияет на время запуска pod’ов.
3. Docker Compose для LAMP-стека (PHP + MySQL + Nginx)
Для чего: Быстрый старт локальной среды разработки для WordPress, Laravel или любого PHP-проекта.
Промт:
Создай docker-compose.yml для LAMP-стека:
- Сервис web: nginx:alpine с пробросом порта 80:80, монтированием ./public в /usr/share/nginx/html
- Сервис app: php:8.3-fpm-alpine с монтированием ./src:/var/www/html
- Сервис db: mysql:8.4 с volume для данных, переменными окружения MYSQL_ROOT_PASSWORD, MYSQL_DATABASE
- Добавь network (bridge) и volume (db_data)
- Укажи depends_on
Выведи готовый compose-файл с комментариями.
Пример использования:
Отлично подходит для локальной разработки. После генерации просто выполните docker compose up -d — и через 10 секунд сайт доступен на localhost:80.
4. Оптимизация кэширования слоёв в Python/Django
Для чего: Ускорение сборки Python-образов за счёт правильного порядка инструкций COPY и RUN.
Промт:
Оптимизируй Dockerfile для Django 5.0 приложения с учётом кэширования слоёв.
Исходные данные:
- requirements.txt с часто меняющимися зависимостями
- статический код, который редко меняется
- медиафайлы, которые меняются каждый сборку
Требования:
- Раздели COPY requirements.txt и COPY . на два шага
- Установи системные зависимости одной командой (RUN apt-get update && apt-get install -y ... && rm -rf /var/lib/apt/lists/*)
- Собери статику отдельным слоем
- Используй .dockerignore для исключения venv, .pyc, __pycache__
Дай готовый Dockerfile.
Пример использования:
Сократите время сборки в CI/CD с 5 минут до 30 секунд при повторных билдах, если requirements.txt не менялся. Это экономит часы ожидания в командах из 10+ разработчиков.
5. Docker Compose для Kafka + Zookeeper (dev-среда)
Для чего: Локальный запуск Kafka для тестирования микросервисов и стриминговых приложений.
Промт:
Создай docker-compose.yml для Apache Kafka 3.6 с Zookeeper.
Требования:
- Zookeeper: confluentinc/cp-zookeeper:latest, порт 2181
- Kafka: confluentinc/cp-kafka:latest, порты 9092 (внешний) и 29092 (внутренний)
- Настрой переменные окружения для репликации и топиков
- Добавь Kafdrop (obsidiandynamics/kafdrop) для UI (порт 9000)
- Все сервисы на одной сети kafka-net
Выведи готовый файл.
Пример использования:
После docker compose up получите работающий кластер Kafka с веб-интерфейсом на localhost:9000. Идеально для интеграционного тестирования.
6. Healthcheck и Graceful Shutdown для Java (Spring Boot)
Для чего: Настройка корректного завершения JVM-приложения в контейнере и проверки его здоровья.
Промт:
Напиши Dockerfile для Spring Boot 3.2 приложения (JAR-файл) с:
- Базовым образом eclipse-temurin:21-jre-alpine
- Добавлением non-root пользователя
- Healthcheck через curl localhost:8080/actuator/health
- Настройкой graceful shutdown (STOPSIGNAL SIGTERM)
- JVM-флагами для контейнера (-XX:+UseContainerSupport, -XX:MaxRAMPercentage=75)
- Минимальным размером образа
Выведи готовый Dockerfile.
Пример использования:
Критично для production в Kubernetes. Healthcheck позволяет K8s корректно перезапускать pod’ы, а graceful shutdown — завершать транзакции без потери данных.
7. Docker Compose для мониторинга (Prometheus + Grafana + cAdvisor)
Для чего: Быстрый разбор стека мониторинга для тестирования и отладки.
Промт:
Создай docker-compose.yml для стека мониторинга:
- Prometheus (prom/prometheus) с конфигом для сбора метрик с cAdvisor
- Grafana (grafana/grafana) с пробросом порта 3000, предустановленным дашбордом
- cAdvisor (gcr.io/cadvisor/cadvisor) для сбора метрик контейнеров
- Node Exporter (prom/node-exporter) для метрик хоста
- Все volume’ы для данных Prometheus и Grafana
Добавь пример prometheus.yml.
Пример использования:
Запустите одной командой — получите полноценный мониторинг всех контейнеров на хосте. Grafana будет доступна на localhost:3000 (admin/admin).
8. Безопасность: минимальные права и секреты
Для чего: Создание образа, соответствующего OWASP Docker Top 10.
Промт:
Сгенерируй Dockerfile для Python 3.12 приложения с учётом безопасности:
- Используй non-root пользователь (создай группу app и пользователя app)
- Не используй RUN pip install с --no-cache-dir (чтобы не хранить кэш)
- Добавь HEALTHCHECK с таймаутом
- Установи только необходимые системные пакеты, удали кэш apt
- Задай ENV PYTHONDONTWRITEBYTECODE=1 и PYTHONUNBUFFERED=1
- Не копируй .env, ключи и сертификаты в образ
- Используй COPY --chown=app:app для файлов
Выведи готовый Dockerfile и .dockerignore.
Пример использования:
Промт гарантирует, что образ не запускается от root, не хранит секреты и не включает ненужные пакеты. Это base для аудита безопасности.
9. Docker Compose для CI/CD (GitLab Runner + SonarQube)
Для чего: Локальный запуск инструментов CI/CD для тестирования пайплайнов без облачных ресурсов.
Промт:
Напиши docker-compose.yml для локального CI/CD:
- GitLab Runner (gitlab/gitlab-runner) с монтированием /var/run/docker.sock
- SonarQube (sonarqube:community) с PostgreSQL (postgres:15) для хранения данных
- Настрой network для связи между сервисами
- Укажи volumes для данных SonarQube и PostgreSQL
- Добавь переменные окружения для SonarQube (SONAR_JDBC_URL и т.д.)
Выведи готовый файл.
Пример использования:
Позволяет запустить SonarQube для статического анализа кода локально, без необходимости покупать/арендовать сервер. GitLab Runner регистрируется и выполняет пайплайны на той же машине.
10. Multi-service приложение с Nginx reverse proxy
Для чего: Типовой шаблон для микросервисной архитектуры с единой точкой входа.
Промт:
Создай docker-compose.yml для микросервисов:
- Сервис api-gateway: nginx:alpine, конфиг с проксированием на /api/* -> backend:3000, /auth/* -> auth-service:4000
- Сервис backend: node:20-alpine, порт 3000
- Сервис auth-service: python:3.12-alpine, порт 4000
- Сервис frontend: nginx:alpine, статика из ./frontend/dist
- Общая сеть frontend-net и backend-net
- Volume для логов nginx
Выведи готовый compose-файл и пример nginx.conf.
Пример использования:
Шаблон для любого микросервисного проекта. За 5 минут получаете работающий reverse proxy с разделением трафика.
Заключение
Эти 10 промтов покрывают 90% повседневных задач Docker-разработчика: от создания минимального образа до настройки production-кластера мониторинга. Используйте их как основу, адаптируя под свои проекты. Главное преимущество — экономия времени: вместо 15 минут на написание Dockerfile вы тратите 15 секунд на копирование промта.
Помните, что AI-ассистенты не заменяют понимания работы Docker, но они отлично справляются с шаблонными задачами. Всегда проверяйте сгенерированный код на соответствие вашим требованиям безопасности и архитектуры.
Рекомендуемые источники для углублённого изучения:
- Официальная документация Docker: docs.docker.com
- Dockerfile best practices: Docker docs — best practices
- OWASP Docker Security Cheat Sheet: cheatsheetseries.owasp.org
Комментарии