DeepSeek Код 👁 15

Многостадийный Dockerfile (multi-stage build) под продакшн

Multi-stage Dockerfile: builder + runtime, non-root, HEALTHCHECK и .dockerignore для минимального прод-образа.

Промпт Запустить →
Собери multi-stage Dockerfile под мой стек: рабочий, с маленьким финальным образом и без dev-зависимостей внутри.

Стек: [СТЕК: Python 3.11, FastAPI, зависимости через poetry]
Как стартует: [ЗАПУСК: uvicorn app.main:app --host 0.0.0.0 --port 8000]
Что в образе не нужно: [ЛИШНЕЕ: тесты, линтеры, poetry, .git, кеши сборки]
Где будет крутиться: [СРЕДА: один сервер с docker compose, за nginx, без Kubernetes]

Что нужно:
1. Dockerfile двумя стадиями: сборка зависимостей и runtime. Комментарий над каждой стадией — зачем она.
2. Запуск от пользователя без root и без установки sudo.
3. `HEALTHCHECK` с реальной проверкой приложения, а не `curl localhost`, который вернёт 200 на любом ответе.
4. `.dockerignore` отдельным блоком.
5. Размер: назови ожидаемый вес финального образа и на чём именно он экономится по сравнению
   с однослойной сборкой.

Отсечка. Не тащи alpine ради размера, если стек на Python с бинарными зависимостями: musl ломает
колёса numpy и psycopg, сборка вырастает в разы и падает на pandas — тогда slim честнее. Не копируй
весь контекст `COPY . .` первым слоем: кеш зависимостей после этого не работает никогда.
Не оставляй `latest` в базовом образе. Не добавляй в финальный образ компилятор ради одной библиотеки —
собери колесо в builder-стадии.

Проверка перед выдачей: пройди по финальной стадии и для каждой строки скажи, попадёт ли в образ то,
что перечислено в поле ЛИШНЕЕ. Если попадает — перепиши.
Запустить промпт →

Пример результата

# === builder === FROM python:3.12 AS builder WORKDIR /build COPY requirements.txt . RUN pip install --user --no-cache-dir -r requirements.txt # === runtime === FROM python:3.12-slim RUN useradd -r -u 1000 app WORKDIR /app COPY --from=builder /root/.local /home/app/.local COPY --chown=app:app . . USER app ENV PATH=/home/app/.local/bin:$PATH HEALTHCHECK --interval=30s CMD curl -f http://localhost:8000/health || exit 1 CMD ["gunicorn", "wsgi:app"] # .dockerignore: # .git # __pycache__ # .env

Похожие промпты

Рефакторинг легаси-модуля в Kimi: карта, план, код по шагам
Kimi
Рефакторинг легаси-модуля в Kimi: карта, план, код по шагам
Kimi
Сайт-визитка с 3D одним промптом — Kimi K3
Claude
Системный промпт для AI Agent ноды n8n — Claude
DeepSeek
Телеграм-бот на n8n в DeepSeek: схема нод, которую можно собрать за вечер

Полезные статьи

Как сделать мультфильм нейросетью по сценарию: промты и замеры
Дипсик и фото: как загрузить, что умеет и почему не грузится
Локальные нейросети для видео: замеры на карте 12 ГБ

Все гайды →