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

Команда запуска в Docker

Команда запуска в образе вызывает интерпретатор и скрипт, её меняют отдельно от текста программы. Строка CMD в Dockerfile задаёт процесс по умолчанию после создания контейнера. Текст app.py при этом остаётся прежним.

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

Файл зависимостей по-прежнему пустой:

<+html+> <-html->

Dockerfile ставит пакеты при сборке и задаёт новую команду старта в exec-форме:

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

Флаг -u включает небуферизованный вывод интерпретатора в журнал контейнера. Сервис app собирается из папки и публикует порты 8080 и 8000. Файл compose.yaml:

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

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

docker compose up -d --build

Опишите сервис note так, чтобы интерпретатор не буферизовал вывод, и отдайте слово note на порту 8000 внутри копии.

Откройте localhost:8080 и сверьте текст страницы с заданным словом.

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