Lidar_Muxa/docker/wheels/README.md

28 lines
2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Колёса для сборки без сети
Если там, где собирается образ, нет доступа к 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 файлов.
После сборки папку можно очистить.