gpt4 book ai didi

google-artifact-registry - 将 Google Artifact Registry 凭据注入(inject) Docker 构建

转载 作者:行者123 更新时间:2023-12-05 01:23:36 24 4
gpt4 key购买 nike

我们有一个用于 Python 包的 Google Artifact Registry。鉴权工程like this .在本地运行良好。

但是,当我想要构建需要从我们的私有(private)注册表安装包的 Docker 镜像时,如何将凭据传递给 Docker 构建?

我希望在使用用户帐户或服务帐户构建时保持 Dockerfile 相同。

这行得通,但我不确定这是最佳做法:

FROM python:3.9

RUN pip install keyring keyrings.google-artifactregistry-auth

COPY requirements.txt .

RUN --mount=type=secret,id=creds,target=/root/.config/gcloud/application_default_credentials.json \
pip install -r requirements.txt

然后构建:

docker build --secret="id=creds,src=$HOME/.config/gcloud/application_default_credentials.json" .

最佳答案

在本地工作时使用 keyring 非常好,但我认为这不是 Dockerfile 的最佳解决方案。这是因为您唯一的选择是在构建时挂载卷(我觉得这很困惑)或将您的凭据复制到 Dockerfile(我觉得这不安全)。

相反,我通过在 Dockerfile 中执行以下操作来实现此目的:

FROM python:3.10

ARG AUTHED_ARTIFACT_REG_URL
COPY ./requirements.txt /requirements.txt

RUN pip install --extra-index-url ${AUTHED_ARTIFACT_REG_URL} -r /requirements.txt

然后,要构建您的 Dockerfile,您可以运行:

docker build --build-arg AUTHED_ARTIFACT_REG_URL=https://oauth2accesstoken:$(gcloud auth print-access-token)@url-for-artifact-registry

虽然它似乎没有出现在 Artifact Registry 的官方文档中,但它可以作为使用钥匙串(keychain)的替代方法。请注意,gcloud auth print-access-token 生成的 token 有效期为 1 小时。

关于google-artifact-registry - 将 Google Artifact Registry 凭据注入(inject) Docker 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72214875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com