问题标签 [google-cloud-build]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
deployment - Google Cloud Build 是否可以由 Container Registry 中的新 Docker 映像触发?
我正在使用 Google 的云工具设置 CI/CD,并期望有一个触发条件“当新图像上传到 Container Registry 时”。
用例是将部署与源(repo)分开。Source 会推送 Docker 镜像,部署会将它们部署到测试阶段。
但 Cloud Build 只为我提供了三个源代码库之间的触发选择。关联
在 GKE 上下文中,您将使用什么来测试、QA 和生产部署 Docker 映像?
kubernetes - 用于更新现有服务资源的 Kubectl apply 命令
目前我正在使用 Kubernetes 版本 1.11.+。以前我总是对我的云构建脚本使用以下命令:
并且命令按预期工作,当时我使用的是 k8s 版本 1.10.+。但是最近我收到以下错误:
- spec.clusterIP:无效值:“”:字段不可变
- metadata.resourceVersion:无效值:“”:必须为更新指定
所以我想知道这是否是服务资源的预期行为?
这是我的服务的 YAML 配置:
docker - 部署到 Google Compute Engine 的 Docker 映像不断重启
我使用 Docker Compose 通过 Google Cloud Build 构建了一个映像。在我的cloudbuild.yml
文件中,我有以下步骤:
- 使用 docker compose 构建 docker 镜像
- 标记构建的图像
- 创建实例模板
- 创建实例组
现在,每次构建新实例时都会出现问题,从映像创建的容器不断重新启动并且从未真正启动。尽管如此,我可以构建图像并将其作为实例上的容器启动,独立于来自云构建的图像。
我设法从日志中找到了一些线索:
E1219 19:13:52 7f28dce6d700 api_server.cc:184 Metadata request unsuccessful: Server responded with 'Forbidden' (403): Transport endpoint is not connected
oauth2.cc:289 Getting auth token from metadata server docker
通过在实例中运行以下命令,我也得到了一些线索:
docker -a -i start <container_id>
输出:Unrecognized input header: 99
该cloudbuild.yml
文件看起来像(我已经用 替换了一些变量...
):
google-chrome - 在未跨步骤共享的云构建步骤中安装 google-chrome(使用卷)
我在安装可跨步骤共享的谷歌浏览器时遇到问题。我的 cloudbuild.yaml 看起来像这样:
第一步下载 chrome,调用which google-chrome
返回/usr/bin/google-chrome
. 在最后一步中执行相同操作不会返回任何内容。
我还尝试将卷添加到中间的步骤并向上移动该步骤(因为将它放在安装步骤中由于某种原因破坏了 git。我认为/usr/bin
由于卷被删除,这不是一个好的共享目录?
尝试 3 正在做类似的事情:
但我收到以下错误:dpkg: error: unable to access dpkg status area: No such file or directory
. 我试过这样做mkdir /workspace/chrome
,但这并不能解决问题。
google-cloud-pubsub - 如何使用拉取请求触发 Google Cloud Build 构建步骤?
我已经使用 cloudbuild.yaml 文件配置了 CI 管道。我正在尝试使用拉取请求启动此管道。似乎提供的构建触发器:https ://cloud.google.com/cloud-build/docs/running-builds/automate-builds不允许此选项。有没有办法使用 webhook 来克服这个限制?就像在拉取请求事件后向云构建主题发送 HTTP 请求并将云功能配置为订阅者以启动管道一样。
谢谢,
sonarqube - 如何在 Google Cloud Build 步骤中包含 sonarqube 扫描步骤
我有一个在 Azure 上运行的 sonarqube 服务器和一个 CICD 管道,它在 GCP 之上使用 Google 云构建配置。您是否知道如何在我的 cloudbuild 文件中包含 sonarqube 连接信息作为自定义构建步骤?我正在使用 gradle 构建我的构建并测试我的图像。
maven - Cloud Build 无法使用 maven 构建简单的构建步骤
测试云构建
我的cloudbuild.yaml的一部分
dockerfile:build 在 bitbucket 管道中完美运行,没问题。我用
但是对于这一步的云构建,我得到了错误:
(JAR_FILE 是从 maven dockerfile 插件传递的
没有这样的文件或目录
为什么?.. 在一天结束的时候,我只是调用 dockerfile:build 并期望它与我从另一个管道构建它时相同。
我的 Dockerfile:
EntryPoint 脚本是(即日志中步骤 15/15 中提到的内容):
(我确实尝试将硬编码值传递给 $SERVCE_FOLDER_NAME、$ACTIVE_PROFILES - 相同 [它适用于 bitbucket 管道])
google-app-engine - Google App Engine 自定义构建(第 2 代)
据我了解,它会根据命令行选项和诸如(对于 python 运行时)之类的gcloud app deploy
东西在幕后触发 Cloud Build 作业。requirements.txt
我要做的是扩展这些 Cloud Build 步骤,以包括数据库迁移和部署前的测试等内容。
我可以看到我可以在单独的 GCP 项目的单独容器中运行这些额外的步骤,然后在最后一步执行类似的操作
这似乎是一个好方法吗?以前有没有人为 GAE 项目做过这种事情?
docker - Cloud Build,maven 包,没有目标文件夹
当我在本地运行这两个命令时,我确实有带有docker文件夹的目标文件夹和其中的图像名称文件
在这一步它失败了:..
cat: /workspace/target/docker/image-name: 没有这样的文件或目录
我试过目标/码头,应用/目标/码头
在我的 Dockerfile 中:
问题:如何查看目标文件夹,如何使 docker push $(cat /workspace/target/docker/image-name) 工作?