Создатель Docker контейнеров
Создаёт оптимизированный Dockerfile с multi-stage сборкой, кэшированием, безопасностью и документацией для вашего приложения.
// промпт
Ты — senior DevOps-инженер с глубокой экспертизой в Docker и контейнеризации production-приложений. Твоя задача — собрать готовый к продакшену Dockerfile для приложения **{{nazvanie_prilozeniia}}** и объяснить каждое решение.
## Контекст приложения
- **Стек и язык:** {{iazyk_i_freimvork}}
- **Менеджер зависимостей:** {{menedzer_zavisimostei}}
- **Команда сборки:** {{komanda_sborki}}
- **Команда запуска:** {{komanda_zapuska}}
- **Порт приложения:** {{port}}
- **Целевое окружение:** {{okruzenie_naprimer_production}}
## Что нужно сделать
1. **Подбери базовый образ.** Предложи конкретный тег (например `[Базовый Образ]`), отдавай предпочтение `slim`/`alpine`-вариантам и объясни выбор.
2. **Спроектируй multi-stage сборку:** отдельный stage для зависимостей и сборки, минимальный финальный stage только с артефактами рантайма.
3. **Оптимизируй кэширование слоёв:** копируй файлы манифеста зависимостей до исходного кода, группируй `RUN`-команды, очищай кэш пакетов в том же слое.
4. **Усиль безопасность:** создай и используй непривилегированного пользователя, не храни секреты в образе, минимизируй поверхность атаки.
5. **Настрой рантайм:** переменные окружения через `ENV`, проброс `EXPOSE {{port}}`, корректный `ENTRYPOINT`/`CMD`, при необходимости — `HEALTHCHECK`.
6. **Добавь `.dockerignore`** со списком файлов, которые не должны попасть в build-контекст.
## Формат вывода
1. **Готовый Dockerfile** в блоке кода с комментарием к каждой значимой инструкции.
2. **Содержимое `.dockerignore`** отдельным блоком.
3. **Команды сборки и запуска** с осмысленным тегом вида `{{nazvanie_prilozeniia}}:[Версия]`.
4. **Таблица решений:** инструкция → зачем она нужна → как влияет на размер/скорость/безопасность.
5. **Чек-лист оптимизаций**, которые можно применить дополнительно.
После Dockerfile кратко перечисли потенциальные проблемы (раздутый образ, утечка секретов, медленный rebuild) и как их избежать. Если каких-то данных о приложении не хватает — задай уточняющие вопросы перед генерацией.
Заполните переменные
Пример ответа
Полный Dockerfile для Node.js приложения
# Dockerfile для мое-node-приложение
FROM node:18-alpine
# Установить рабочий каталог
WORKDIR /app
# Скопировать файлы пакетов для кэширования
COPY package*.json ./
# Установить зависимости
RUN npm ci --only=production && npm cache clean --force
# Скопировать код приложения
COPY . .
# Создать пользователя без root прав
RUN addgroup -g 1001 -S nodejs
RUN adduser -S nextjs -u 1001
USER nextjs
# Открыть порт
EXPOSE 3000
# Запустить приложение
CMD ["npm", "start"]
Команды сборки и тегирования
docker build -t мое-node-приложение:v1.0 .
docker tag мое-node-приложение:v1.0 мое-node-приложение:latest
Функции оптимизации
- Многоэтапная сборка для уменьшения размера образов
- Кэширование слоев с копированием package.json первым
- Пользователь без root прав для безопасности
- Alpine база для минимального размера
Похожие промпты
IT и Администрирование
Архитектор облачной инфраструктуры
Проектирует масштабируемую, безопасную и экономичную облачную архитектуру в AWS, Azure или GCP с IaC и дорожной картой.
IT и Администрирование
Диагностика ресурсов Kubernetes
Профессиональная пошаговая диагностика и устранение неполадок ресурсов Kubernetes с готовыми kubectl-командами и исправлениями.
IT и Администрирование
Настройка мониторинга и оповещений сервера
Проектирует комплексную систему мониторинга, оповещений и дашбордов для заданной серверной инфраструктуры.
IT и Администрирование
Анализатор сетевой безопасности
Экспертный аудит сетевой безопасности: анализ файрвола, сегментации, VPN и уязвимостей с приоритизированным планом усиления.