По порядку Junior Dockerfile и multi-stage обновлено
Порядок инструкций для кеша
Вопрос
Расставь инструкции Dockerfile Python-сервиса в порядке, который лучше всего использует кеш сборки.
Попробуйте сами
Расставьте шаги по порядку стрелками.
- 1
CMD ["python", "app.py"] - 2
COPY requirements.txt . - 3
RUN pip install --no-cache-dir -r requirements.txt - 4
FROM python:3.12-slim - 5
COPY . . - 6
RUN apt-get update && apt-get install -y --no-install-recommends libpq5 && rm -rf /var/lib/apt/lists/*
Показать ответ и разбор
Коротко
Сверху то, что меняется реже всего: база и системные пакеты, затем манифест зависимостей и их установка, потом код, который меняется постоянно. CMD не создаёт слой с файлами и может стоять в конце.
Правильный порядок
- 1
FROM python:3.12-slim - 2
RUN apt-get update && apt-get install -y --no-install-recommends libpq5 && rm -rf /var/lib/apt/lists/* - 3
COPY requirements.txt . - 4
RUN pip install --no-cache-dir -r requirements.txt - 5
COPY . . - 6
CMD ["python", "app.py"]
Разбор
Сверху то, что меняется реже всего: база и системные пакеты, затем манифест зависимостей и их установка, потом код, который меняется постоянно. CMD не создаёт слой с файлами и может стоять в конце. При правке кода пересоберётся только слой COPY . ..
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.