您的位置 首页 编程知识

如何在Docker文件中从GCP Artifact注册表中安装Python软件包

本文介绍如何使用构建镜像,并从gcp artifact registry安装私有包,避免将敏感的服务帐户密钥直…

本文介绍如何使用构建镜像,并从gcp artifact registry安装私有包,避免将敏感的服务帐户密钥直接放入镜像中。

如何在Docker文件中从GCP Artifact注册表中安装Python软件包

您已开发一个内部使用的Python包,并希望将其发布到GCP Artifact Registry,而不是PyPI。 本文提供了一种安全的方案,避免在Docker镜像中直接包含服务帐户密钥文件。

包发布:

使用Poetry发布包到Artifact Registry:

立即学习“”;

poetry source add --priority=supplemental gcp_registry https://{location}-python.pkg.dev/{repo}/{package}/ poetry publish --no-interaction --build --repository gcp_registry
登录后复制

本地安装:

在本地安装包,需要创建一个requirements_private.txt文件:

--index-url https://{location}-python.pkg.dev/{repo}/{package}/simple/ --extra-index-url https://pypi.org/simple {your_package_name}
登录后复制

然后执行以下命令安装:

pip install keyring pip install keyrings.google-artifactregistry-auth pip install -r /opt/requirements_private.txt
登录后复制

keyring和keyrings.google-artifactregistry-auth包用于处理Artifact Registry的身份验证。请确保已设置应用程序默认凭据(ADC)。

Docker构建:

关键在于使用Docker secrets管理服务帐户密钥,并通过环境变量google_application_centials指定密钥路径。

Dockerfile示例:

ARG google_application_credentials  COPY requirements_private.txt /opt/requirements_private.txt  RUN --mount=type=secret,id=creds,target=/opt/mykey.json,mode=0444      pip install keyring &&      pip install keyrings.google-artifactregistry-auth &&      pip install -r /opt/requirements_private.txt  COPY requirements.txt /opt/requirements.txt RUN pip install -r /opt/requirements.txt
登录后复制

requirements_private.txt内容同上。 您可以使用另一个requirements.txt文件来安装来自PyPI的公共依赖项。

docker-compose.yml示例:

services:   app:     build:       context: .       args:         - google_application_credentials=/opt/mykey.json       secrets:         - creds  secrets:   creds:     file: "c:/your/local/host/path/to/google_service_account.json" # 请替换为您的本地密钥文件路径
登录后复制

执行docker compose build构建镜像。 此方法将服务帐户密钥安全地存储为Docker secret,并在构建过程中通过环境变量传递给应用程序,从而避免密钥泄露。

以上就是如何在Docker文件中从GCP Artifact注册表中安装Python软件包的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表四平甲倪网络网站制作专家立场,转载请注明出处:http://www.elephantgpt.cn/6474.html

作者: nijia

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

18844404989

在线咨询: QQ交谈

邮箱: 641522856@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部