РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dcPyDvIc 14 of 22 menu
◀ ▶

Команда в контейнере в Docker

Команда в контейнере запускает интерпретатор рядом с работающим сервером. Вызов выполняется внутри уже поднятого сервиса и не заменяет его главный процесс. Сервер на python уже ждёт соединений.

Скрипт слушает 8000 на 0.0.0.0 и отдаёт 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(('0.0.0.0', 8000), Handler).serve_forever()

Образ собирается из Dockerfile на python:3.14:

FROM python:3.14 WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY app.py . CMD ["python", "app.py"]

Сервис app в фоне с парой портов 8080 и 8000. Файл compose.yaml:

services: app: build: . ports: - "8080:8000"

Подъём в фоне оставит главный процесс Python в работе. Выполним запуск проекта:

docker compose up -d --build

Короткий вызов python напечатает inner в ту же копию, где уже слушает сервер:

docker compose exec app python -c "print('inner')"

В работающем сервисе note запустите короткий вызов интерпретатора, который напечатает ping, не останавливая сервер.

Откройте localhost:8080 и убедитесь, что ответ страницы не пропал.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить