Я строю проект, который требует некоторых зависимостей от частных репозиториев Python.Это репо имеет внутри подмодуля, который также указывает на частное репо.Я могу получить его на своей машине, используя ssh-ключ, который неудобен внутри контейнера.
В моем файле dockerfile я блокирую на этом шаге:
RUN pip3 install wheel \
&& pip3 wheel git+https://${GITHUB_TOKEN}@github.com/owner/repo.git@master \
--wheel-dir=/svc/wheels
Он может получить репо безпроблема, но не может обработать подмодуль.Я полагаю, что pip разрешает URL и не передает изначально переданный токен.
Я не знаю, как обойти проблему.Я мог бы иметь папку локально и скопировать ее, или настроить частное хранилище пипов, к которому я бы имел доступ во время сборки (если это возможно), или использовать ssh-ключи внутри контейнера (звучит как ужасный подход ко мне).
Есть ли "стандартный способ сделать это"?Если нет, то что бы вы предложили?
EDIT1: это похоже на проблему с git, так как git clone --recursive
не работает и
ОТВЕТ: Сначала я потребовал использовать netrc, как было предложено, и обнаружилвопрос в моей декларации субмодуля.Он был настроен с использованием ssh.url = git@github.com:
вместо url = https://github.com/
.Спасибо, что потратили время и силы на его тестирование.Я приму ответ larsks
, который направил меня к нему