Главная/Материалы/Материал

hello-python

Минимальный корректный Python-образ. Используется в уроке 6.3.

Что демонстрирует

  • PYTHONUNBUFFERED=1 — вывод сразу виден в docker logs;
  • exec form в CMD — приложение становится PID 1;
  • обработчик SIGTERM — корректное завершение вместо SIGKILL через 10 секунд;
  • непривилегированный пользователь с фиксированным UID.

Запуск

bash
docker build -t hello-python .
docker run -d --name hello hello-python
docker logs -f hello

Проверка

Вывод появляется сразу, без буферизации:

bash
docker logs hello

Корректное завершение занимает доли секунды, exit code 0:

bash
time docker stop hello
docker inspect hello --format '{{.State.ExitCode}}'
docker logs hello | tail -2

Ожидается:

text
real    0m0.3s
0
получен сигнал SIGTERM, завершаюсь
завершено штатно

Приложение работает не от root:

bash
docker run --rm hello-python python -c "import os; print(os.getuid())"

Ожидается 10001.

Уборка

bash
docker rm -f hello
docker rmi hello-python
Markdown на GitHub ↗