Скрипт сервера в Docker
Скрипт сервера на модуле http.server отвечает строкой hello на каждый запрос. Класс обработчика наследует BaseHTTPRequestHandler и отправляет тело ответа без маршрутов и шаблонов.
Файл app.py слушает
порт 8000 и на любой
запрос отправляет слово
hello.
Код короткий и лежит
в папке проекта:
from http.server import BaseHTTPRequestHandler, HTTPServer
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.end_headers()
self.wfile.write(b'hello')
if __name__ == '__main__':
HTTPServer(('', 8000), Handler).serve_forever()
Порт наружу пока не открываем: браузер с хоста до процесса ещё не дойдёт. Текст скрипта передадим в контейнер через стандартный ввод, без тома с диска. Запуск на переднем плане оставит процесс в работе, пока сеанс не прервут. Выполним команду подъёма:
docker run --rm -i python:3.14 python - <<'PY'
from http.server import BaseHTTPRequestHandler, HTTPServer
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.end_headers()
self.wfile.write(b'hello')
if __name__ == '__main__':
HTTPServer(('', 8000), Handler).serve_forever()
PY
Поднимите копию с ответом ok на порту 8000 без публикации порта на компьютер.
Убедитесь, что процесс не завершился сразу после старта.