Зачем нужно указывать несколько операций from в одном Dockerfile
Python
Middle
Без компании
Зачем нужно указывать несколько операций from в одном Dockerfile
Ответы
Указание нескольких `FROM` в одном Dockerfile позволяет создать мультистадийную сборку. Это полезно для:
- Оптимизации размера финального образа — можно использовать один образ для сборки (с компиляторами, билд-тулами), а другой — для рантайма (только с необходимыми зависимостями).
- Изоляции зависимостей — сборка и рантайм используют разные окружения.
- Безопасности — в финальный образ не попадают промежуточные артефакты и инструменты сборки.
Пример:
```
# Стадия сборки
FROM python:3.9 as builder
COPY requirements.txt .
RUN pip install --user -r requirements.txt
# Финальная стадия
FROM python:3.9-slim
COPY --from=builder /root/.local /root/.local
COPY . .
CMD ["python", "app.py"]
```
Здесь первый образ используется для установки зависимостей, а второй — минимальный образ для запуска приложения.