docker - Cloud Build 无法创建映像并将其发布到 Container Registry
问题描述
我的目标是为 Django Rest Framework 项目创建 CI/CD。我正在使用Google Source Repository
版本控制和Google Compute Engine VM
实例进行部署。Dockerfile
这个项目的能够创建图像,我也能够运行该图像。
现在,Source Repository
当我将其他分支与主分支合并时,云触发器应该能够创建一个新图像,将其推送到并使用新容器Container Repository
更新现有实例。Google Compute Engine VM
到目前为止,每次推送到 master 分支Cloud Build - Trigger
都能够创建一个图像并将其推送过来Container Registry
。但不Cloud Build - Trigger
使用.Dockerfile
cloudbuild.yaml
这是cloudbuild.ymal
我装箱的。
steps:
- name: 'gcr.io/myproject-100/docker'
args: [ 'build', '-t', 'gcr.io/myproject-100/dropoff:', '.' ]
- name: 'gcr.io/cloud-builders/gcloud'
args: [ 'compute', 'instance', 'update-container', 'dropoff-staging-v3', --zone='northeast1-a' ]
images:
- 'gcr.io/myproject-100/dropoff'
Dockerfile
和cloudbuild.yaml
位于项目文件夹的根目录中。当我运行命令时,gcloud builds submit --config cloudbuild.yaml
我收到此错误 -
ERROR: (gcloud.builds.submit) parsing cloudbuild.yaml: while parsing a block collection
in "cloudbuild.yaml", line 2, column 5
expected <block end>, but found u'?'
in "cloudbuild.yaml", line 4, column 5
- 是什么导致了这个错误,我该如何解决这个问题。
- 你认为我写的方式
cloudbuild.yaml
会帮助我实现我的目标吗?
解决方案
这cloudbuild.yaml
似乎完全无关,
因为第 2 行和第 4 行,第 5 列没有“u”;整条线都没有。
请参阅YAML in a Nutshell了解如何正确缩进;它应该看起来更像这样:
steps:
- name: 'gcr.io/dropoff-280002/docker'
args: [ 'build', '-t', 'gcr.io/dropoff-280002/dropoff:', '.' ]
- name: 'gcr.io/cloud-builders/gcloud'
args: [ 'compute', 'instance', 'update-container', 'dropoff-staging-v3', --zone='northeast1-a' ]
images:
- 'gcr.io/dropoff-280002/dropoff'
或者看看这个cloudbuild.yaml
......众所周知,它正在工作。
推荐阅读
- c# - 双向链表C#中两个元素的交换
- python - Python 3.8 中的多处理
- node.js - 在 Express API 端点上获得重复的结果。如何重置搜索以便每次都能获得新结果?
- excel - 有没有办法将超链接文件的内容复制到我的剪贴板?
- apache-kafka-streams - Kafka Streams Aggregator 中的访问记录偏移量
- sql - Redshift 权限撤销授权
- java - 需要使用 ObjectMapper 对非静态内部类进行 MixIn 解析 - Java 6
- python - 如何从 Python POST 请求中获取 JSON 数据
- mysql - SQL:如何将数据插入 SET 数据类型?
- angular - 使用 Angular 和 Spring Boot 的 http get 请求的请求标头