Я пытаюсь создать образ Docker в Google Build, для которого требуется пакет Python, хранящийся в реестре артефактов. Я использую uv в качестве менеджера пакетов.
Вот мой Dockerfile для изображения:
Код: Выделить всё
FROM python:3.12.2-slim-bookworm
ENV UV_COMPILE_BYTECODE=1
ENV G_PROJECT_ID=...
ENV G_LOCATION=...
ENV G_PY_REPOSITORY=...
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
ADD . /app
WORKDIR /app
RUN uv sync --frozen
RUN uv pip install keyrings.google-artifactregistry-auth
RUN uv pip install --extra-index-url https://$G_LOCATION-python.pkg.dev/$G_PROJECT_ID/$G_PY_REPOSITORY/simple/ my-package --verbose
На этапе установки uv pip --extra-index-url я получаю 401 Unauthorized, что вроде как и ожидалось, но я не могу понять, как на самом деле авторизоваться. Кажется, это должно быть очень легко сделать.
Вот результат:
Код: Выделить всё
DEBUG No compatible version found for: my-package
× No solution found when resolving dependencies:
╰─▶ Because utils-ms was not found in the package registry and you
require my-package, we can conclude that your requirements are
unsatisfiable.
hint: An index URL
(https://...-python.pkg.dev/.../.../simple/)
could not be queried due to a lack of valid authentication credentials
(401 Unauthorized).
DEBUG Released lock at `/app/.venv/.lock`
The command '/bin/sh -c uv pip install --extra-index-url https://$G_LOCATION-python.pkg.dev/$G_PROJECT_ID/$G_PY_REPOSITORY/simple/ my-package --verbose' returned a non-zero code: 1
Этот вопрос касается очень похожей проблемы, за исключением того, что ошибка отличается от моей.
Подробнее здесь: https://stackoverflow.com/questions/793 ... y-for-goog
Мобильная версия