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

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

Docker Лабораторна 30: Test та Prod образи

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

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

Тема: Тестові та продакшн образи (multi-stage)

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

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



Крок 1. Підготувати застосунок з юніт тестами.

Пояснення: наприклад невеликий сервіс на Python або Go.



Крок 2. Створити Dockerfile з двома stage.

Пояснення: перша стадія build і тестування, друга виконує тільки рантайм.



Крок 3. У build стадії встановити усі dev залежності.

Пояснення: тести і дебаг інструменти не потрібні у фінальному образі.



Крок 4. Додати у build стадію запуск юніт тестів.

Пояснення: команда RUN яка завершує збірку помилкою якщо тести не пройшли.



Крок 5. У фінальній стадії використовувати тільки зібраний артефакт.

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



Крок 6. Зібрати тестовий образ.

Команда: docker build -t lab30-test --target builder .

Пояснення: цей образ міститиме інструменти тестування.



Крок 7. Зібрати прод образ.

Команда: docker build -t lab30-prod .

Пояснення: за замовчуванням використовується остання стадія.



Крок 8. Порівняти розміри образів.

Команда: docker images | grep lab30

Пояснення: прод образ має бути помітно меншим.



Крок 9. Запустити прод образ і переконатися що застосунок працює.

Команда: docker run --rm lab30-prod



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

Завдання: опиши як би ти інтегрував таку схему у ci cd пайплайн.