Что такое контейнер
От проблемы «у меня работает» к воспроизводимому окружению для проверки API.
После урока вы сможете
- Отличать приложение от его окружения
- Объяснять роль контейнера
- Разделять сборку, запуск и проверку
Почему один код даёт разные результаты
Представьте баг: разработчик получает от API JSON, а на тестовом стенде сервис падает при запуске. Исходный код одинаковый, но на стенде другая версия Python. Проверять только коммит недостаточно: поведение зависит ещё от интерпретатора, библиотек, файлов и параметров запуска.
Для QA полезно разделять эти составляющие. Код отвечает на вопрос «что делает программа», окружение — «какими средствами она выполняется», конфигурация — «с какими настройками её запустили». Начните расследование с двух коротких проверок:
python --version
python app.py
Первая команда проверяет доступный интерпретатор. Вторая пытается выполнить файл относительно текущей папки. Ошибка python: command not found возникает ещё до выполнения вашего кода; ошибка из app.py относится уже к следующему этапу. Docker помогает описать окружение, но читать ошибки всё равно нужно по месту возникновения.