Lidar_Muxa/docker/wheels/README.md

2 KiB
Raw Blame History

Колёса для сборки без сети

Если там, где собирается образ, нет доступа к download.pytorch.org, колёса PyTorch скачиваются на соседней машине и отдаются сборке по HTTP — аргумент TORCH_WHEELS в docker/Dockerfile. Без аргумента сборка берёт PyTorch из индекса, как обычно.

  1. Скачать на машине с сетью — хоть на Windows, колёса берутся под Linux:

    python docker/fetch_wheels.py
    

    Обычного pip download --platform ... мало: на Windows он молча пропускает зависимости «только для Linux» — все библиотеки CUDA и triton. Скрипт берёт их список из метаданных колеса torch и докачивает явно, заодно кладёт колесо pip (в базовом образе его нет).

  2. Отдать папку любым HTTP-сервером и собрать образ с сетью хоста:

    python3 -m http.server 8765 --bind 127.0.0.1 --directory docker/wheels &
    docker build --network host --build-arg TORCH_WHEELS=http://127.0.0.1:8765 \
        -t flyguard -f docker/Dockerfile .
    

    --network host нужен, чтобы сборка видела сервер на 127.0.0.1. Базовый образ и пакеты apt сборка всё равно берёт из сети (или из своего кэша, если эти слои уже собирались) — колёса снимают только самую тяжёлую часть, 3.8 ГБ.

Колёса в контекст сборки не копируются (.dockerignore): это ещё 4 ГБ копий на диске. В репозиторий они тоже не кладутся (.gitignore) — около 4 ГБ, 26 файлов. После сборки папку можно очистить.