有没有任何方法可以从dockerhub中提取映像并使用cloudbuild.yaml部署到云运行



在文档中,他们说我们可以使用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文件中的dockerhub中提取图像,如下所示:

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

我想从docker hub中提取映像,并使用cloudbuil.yaml文件构建并部署此映像到云运行,但我不知道如何做到这一点,因为我是docker和云运行的新手。

我怀疑这个问题对于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的存储桶的写入权限来实现的。

所有这些都可以使用云构建步骤(请参阅:云构建器(

一旦图像在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。你可以拉一张图片,然后把它推到不同的地方,就像这样:

docker pull ubuntu
docker tag ubuntu gcr.io/.../ubuntu
docker push gcr.io/.../ubuntu

我不知道Maven是如何以及为什么会参与进来的。

相关内容

  • 没有找到相关文章

最新更新