gpt4 book ai didi

docker - 有什么方法可以使用 cloudbuild.yaml 从 docker hub 中提取图像并部署到云运行

转载 作者:行者123 更新时间:2023-12-02 16:09:34 28 4
gpt4 key购买 nike

在文档中,他们说我们可以使用 cloudbuild.yaml 文件从云容器注册表构建容器并将其部署到云运行:

steps:
# Build the container image
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/PROJECT_ID/IMAGE', '.']
# Push the container image to Container Registry
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/PROJECT_ID/IMAGE']
# Deploy container image to Cloud Run
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
entrypoint: gcloud
args: ['run', 'deploy', 'SERVICE-NAME', '--image', 'gcr.io/PROJECT_ID/IMAGE', '--region', 'REGION', '--platform', 'managed']
images:
- gcr.io/PROJECT_ID/IMAGE

我们还可以像这样在 cloudbuild.yaml 文件中从 docker hub 中拉取镜像:

steps:
- name: "maven"
args: ["mvn", "--version"]

我想从 docker hub 中拉取镜像并使用 cloudbuil.yaml 文件构建并将此镜像部署到 cloud run,但我不知道该怎么做,因为我是 docker 和 cloud run 的新手。

最佳答案

我怀疑这个问题对于 Stackoverflow 来说有点太宽泛了。

您可能会从阅读文档和了解有关这些技术的更多信息中受益。

答案还取决于安全约束。

IIRC,Cloud Run要求您从 Google Container Registry (GCR) 部署镜像,因此关键步骤是将镜像从 DockerHub 传输到 GCR(docker pull 来自DockerHub;docker tag 用于 GCR;docker push 用于 GCR)。

如果 DockerHub 需要身份验证,您需要先登录 DockerHub,然后才能从中docker pull

如果 GCR 需要身份验证(可能),您需要先登录 GCR,然后才能 docker push 到它。通常,这是通过授予 Cloud Build 帐户对支撑 GCR 的存储桶的写入权限来实现的。

所有这些都可以使用 Cloud Build 步骤(参见:cloud-builders)

一旦图像在 GCR 中,您可以使用 gcloud 步骤来部署它

这些步骤可以使用 Cloud Build (cloudbuild.yaml) 实现,形式如下:

steps:
- name: "docker"
args:
- "login"
- "--username=[[username]]"
- "--password=[[password-or-token]]"
- name: "docker"
args:
- "pull"
- "[[image]]:[[tag]]"
- name: "docker"
args:
- "tag"
- "[[image]]:[[tag]]"
- "gcr.io/${PROJECT_ID}/[[image]]:[[tag]]"
- name: "docker"
args:
- "push"
- "gcr.io/${PROJECT_ID}/[[image]]:[[tag]]"
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
entrypoint: gcloud
args:
- "run"
- "deploy"
- "[[service]]"
- "--image=gcr.io/${PROJECT_ID}/[[image]]:[[tag]]"
- "--region=[[REGION]]"
- "--platform=managed"

关于docker - 有什么方法可以使用 cloudbuild.yaml 从 docker hub 中提取图像并部署到云运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68381216/

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