【问题标题】:Upload docker image to GCR through python通过python上传docker镜像到GCR
【发布时间】:2021-04-05 05:30:47
【问题描述】:

我正在编写一个 python 代码,我需要在其中构建一个 docker 映像并将其推送到 GCR(Google Container Registry)。我可以使用 Docker SDK for Python 创建一个 docker 映像,但是我无法找到将其推送到 gcr 的方法。我正在研究docker_client.images.push()method,但我没有看到使用这种方法连接到 gcr 的方法。我可以使用docker_client.images.build() 构建 docker 映像,但找不到任何方法将其推送到谷歌容器注册表。有办法将它推送到 docker 注册表,但我需要特定于 gcr。

我已经使用 google cli 或通过 Azure DevOps 实现了这一点,但是我正在尝试使用 python 应用程序来做同样的事情。

感谢任何帮助/建议。

【问题讨论】:

  • 您将如何仅使用命令行工具来执行此操作?直接将其转换为 docker-py 调用是否有效? (通常注册表名称是映像名称的一部分。)
  • 我在本地和虚拟机上都安装了 gcloud sdk,它也专用于管道。

标签: python docker google-container-registry


【解决方案1】:

您是否查看过容器注册表 python 库? https://github.com/google/containerregistry

或者更好的是,您是否考虑过转行 https://github.com/google/go-containerregistry

【讨论】:

    【解决方案2】:

    这似乎对我使用 Docker SDK 有用:

    import docker
    
    client  = docker.from_env()
    
    image, logs = client.images.build(path="<path/to/your/docker-repo>")
    
    image_dest = "gcr.io/<your-gcp-project>/<your-repo-name>"
    
    image.tag(image_dest)
    
    client.api.push(image_dest)
    

    我还必须使用gcloud auth configure-docker 添加权限。

    【讨论】:

      猜你喜欢
      • 2020-05-09
      • 2020-02-26
      • 2018-10-31
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      • 1970-01-01
      • 2019-03-15
      • 2019-02-28
      相关资源
      最近更新 更多