2 KiB
Колёса для сборки без сети
Если там, где собирается образ, нет доступа к download.pytorch.org, колёса PyTorch
скачиваются на соседней машине и отдаются сборке по HTTP — аргумент TORCH_WHEELS
в docker/Dockerfile. Без аргумента сборка берёт PyTorch из индекса, как обычно.
-
Скачать на машине с сетью — хоть на Windows, колёса берутся под Linux:
python docker/fetch_wheels.pyОбычного
pip download --platform ...мало: на Windows он молча пропускает зависимости «только для Linux» — все библиотеки CUDA и triton. Скрипт берёт их список из метаданных колеса torch и докачивает явно, заодно кладёт колесо pip (в базовом образе его нет). -
Отдать папку любым 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 файлов.
После сборки папку можно очистить.