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

Установка зависимостей в Docker

Установка зависимостей выполняет pip по этому файлу во время сборки образа. Даже при пустом списке шаг pip install с флагом -r и путём requirements.txt отрабатывает без ошибки и готовит место под пакеты внутри шаблона.

Сначала в образ попадает только requirements.txt, затем идёт установка, и уже после - app.py. Так слой с пакетами не пересобирается при каждой правке кода сервера. Файл шагов такой:

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

Скрипт app.py слушает 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()

Содержимое requirements.txt без сторонних пакетов:

<+html+> <-html->

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

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

После пересборки страница на localhost:8080 покажет hello. Выполним запуск с пересборкой:

docker compose up -d --build

Добавьте в шаблон сервиса note шаг установки pip по requirements.txt перед копированием app.py.

Пересоберите проект и убедитесь, что ответ на порту 8080 не изменился.

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