← До фільтрів та технологій

← До списку лабораторних по Docker

Docker Лабораторна 61: Debug збірки через target

Технологія: Docker

Номер лабораторної: 61 · Рівень: middle

Тема: Налагодження збірки образів і цільові стадії

Повний опис / сценарій лабораторної:

Мета: навчитися налагоджувати складний Dockerfile за допомогою окремих build стадій.



Крок 1. Створити Dockerfile з кількома стадіями.

Пояснення: наприклад base, build, test, final.



Крок 2. Додати у кожну стадію простий echo з назвою стадії.

Пояснення: це допоможе бачити порядок виконання.



Крок 3. Виконати стандартну збірку.

Команда: docker build -t lab61-app .

Пояснення: подивися які кроки реально виконуються.



Крок 4. Зібрати тільки середню стадію build.

Команда: docker build --target build -t lab61-build .

Пояснення: образ міститиме лише артефакти цієї стадії.



Крок 5. Запустити контейнер з образу lab61-build.

Команда: docker run --rm -it lab61-build sh

Пояснення: перевір наявність зібраних бінарників або тимчасових файлів.



Крок 6. Увімкнути більш детальне логування збірки.

Команда: DOCKER_BUILDKIT=0 docker build --no-cache -t lab61-debug .

Пояснення: класичний формат логів інколи читати легше.



Крок 7. Додати штучну помилку у одну стадію.

Пояснення: наприклад неправильну команду у RUN.



Крок 8. Запустити збірку тільки до проблемної стадії.

Команда: docker build --target build -t lab61-broken . || true

Пояснення: дивися на останні рядки логів щоб зрозуміти причину.



Крок 9. Виправити Dockerfile і переконатися що помилка зникла.

Пояснення: знову зібрати образ і перевірити лог.



Крок 10. Міні звіт.

Завдання: опиши стратегію поділу Dockerfile на стадії для максимального спрощення debug.