Установите пакет Python Artifact Registry из Dockerfile с помощью Cloud Build.Python

Программы на Python
Anonymous
Установите пакет Python Artifact Registry из Dockerfile с помощью Cloud Build.

Сообщение Anonymous »

У меня есть пакет Python, расположенный в моем репозитории реестра артефактов.
Мой шаблон Dataflow Flex представляет собой пакет в образе Docker с помощью следующей команды:

Код: Выделить всё

gcloud builds submit --tag $CONTAINER_IMAGE .
Поскольку разработчики постоянно меняют исходный код конвейера, эта команда часто запускается с их компьютеров для пересборки образа.
Вот мой Файл Docker:

Код: Выделить всё

FROM gcr.io/dataflow-templates-base/python311-template-launcher-base

ARG WORKDIR=/template
RUN mkdir -p ${WORKDIR}
WORKDIR ${WORKDIR}

ENV PYTHONPATH ${WORKDIR}
ENV FLEX_TEMPLATE_PYTHON_SETUP_FILE="${WORKDIR}/setup.py"
ENV FLEX_TEMPLATE_PYTHON_PY_FILE="${WORKDIR}/main.py"

RUN pip install --no-cache-dir -U pip && \
pip install --no-cache-dir -U keyrings.google-artifactregistry-auth

RUN pip install --no-cache-dir -U --index-url=https://europe-west9-python.pkg.dev/sample-project/python-repo/ mypackage

COPY . ${WORKDIR}/

ENTRYPOINT ["/opt/google/dataflow/python_template_launcher"]
Я получаю следующую ошибку:

Код: Выделить всё

ERROR: No matching distribution found for mypackage
error building image: error building stage: failed to execute command: waiting for process to exit: exit status 1
Полагаю, у процесса Cloud Build нет прав доступа. Я немного не понимаю, как получить их из файла Docker.
В найденной мной статье упоминалось использование файла ключей учетной записи службы, считываемого процессом Docker, но мне бы хотелось чтобы избежать этого. Могу ли я использовать функцию выдачи себя за учетную запись службы?

Подробнее здесь: https://stackoverflow.com/questions/786 ... loud-build

Вернуться в «Python»