问题标签 [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.

0 投票
1 回答
110 浏览

docker - GC Cloud Build:Remote-Builder hello world 中的异常

我尝试使用Remote Builder图像设置我的 AppEngine 应用程序的远程构建。这是我的 cloudbuild.yaml:
steps: - name: gcr.io/{PROJECT_NAME}/remote-builder env: - ZONE=us-east1-b - INSTANCE_NAME=Remote_Cloud_Build - INSTANCE_ARGS=--image-project cos-cloud --image-family cos-stable 我从远程构建器示例
中获取了这个值 但是当我尝试使用它进行部署时,gcloud builds submit --config cloudbuild.yaml 我收到一个错误:
/bin/run-builder.sh: line 2: $'\r': command not found
你能帮我解决一下吗?
提前致谢!

0 投票
1 回答
1203 浏览

kubernetes - 更新映像时 Google Cloud Build 找不到 kubernetes 部署

我正在尝试使用 Cloud Build 设置 CI 管道。我的构建文件构建并推送 Docker 镜像,然后使用kubectl构建器更新 kubernetes 部署中的镜像。但是我收到以下错误:

我已通过 UI 验证部署处于活动状态并具有该名称。认为这可能是权限问题,但据我所知,Cloud Build 服务帐户具有 Kubernetes Engine 管理员角色,并且能够在上一步中成功提取集群身份验证数据。

编辑:根据要求,这是我的构建脚本:

而deployment.yaml——

0 投票
0 回答
65 浏览

google-cloud-platform - Cloud Build GitHub App 只绑定一个 GCP 项目?

使用Cloud Build GitHub App ( doc ) 我试图拥有

  • GitHub Repo A部署到GCP 项目 A
  • GitHub Repo B部署到GCP 项目 B

无法定义目标 GCP 项目,它总是发布到第一个项目。我没有代表进一步Freddy Boucher 的问题

0 投票
1 回答
731 浏览

docker - 具有内部存储库的 GC Cloud Build 自定义构建过程

我必须使用 GC Cloud Build 配置 GC AppEngine 应用程序的自定义构建过程。
首先 - 我在 GC ComputeEngine 实例上有一个内部 python 存储库。它只能通过内部网络访问,我使用Remote-builderpip install在内部 GC 实例上运行命令。
从内部存储库下载依赖项后,我必须将结果部署到 GC AppEngine。

Cloudbuild.yaml
steps: /#Download dependencies from the internal repository - name: gcr.io/${ProjectName}/remote-builder env: - COMMAND=sudo bash workspace/download-dependencies.bash - ZONE=us-east1-b - INSTANCE_NAME=remote-cloud-build - INSTANCE_ARGS=--image-project centos-cloud --image-family centos-7 - name: gcr.io/cloud-builders/docker args: ['build', '-t', 'gcr.io/${ProjectName}/app', '.'] - name: gcr.io/cloud-builders/docker args: ['push', 'gcr.io/${ProjectName}/app'] - name: gcr.io/cloud-builders/gcloud args: ['app', 'deploy', 'app.yaml', '--image-url=gcr.io/${ProjectName}/${ProjectName}'] images: ['gcr.io/${ProjectName}/${ProjectName}']

应用程序.yaml:
runtime: python env: flex entrypoint: python main.py service: service-name runtime_config: python_version: 3

Dockerfile:
FROM gcr.io/google-appengine/python WORKDIR /app COPY . /app

下载-dependencies.bash:
#!/usr/bin/env bash easy_install pip pip install --upgrade pip pip install --upgrade setuptools pip install -r workspace/requirements.txt'

应用程序的新版本运行后gcloud builds submit --config cloudbuild.yaml 部署在 AppEngine 上,但它不起作用

也许问题是错误的图像?据我了解,我需要配置 Dockefile 以将所有自定义 python 依赖项收集到图像中。
你能帮我解决一下
吗提前谢谢!

更新 我根据谷歌指南更改了我的 Dockerfile:
FROM gcr.io/google-appengine/python RUN virtualenv /env ENV VIRTUAL_ENV /env ENV PATH /env/bin:$PATH ADD . /app CMD main.py
新错误是:/bin/sh: 1: main.py: not found
如果我将最后一行更改为:CMD app/main.py- 它创建版本并且不起作用

0 投票
1 回答
471 浏览

docker - Google Cloud Build - 结果不会跨步骤保存

我使用远程构建器社区映像从内部 GC ComputeEngine 实例下载一些受保护的依赖项。

cloudbuild.yaml中的这一步如下所示:

构建.bash:

所以我将我的库复制到该workspace/requirements文件夹​​中。
但是在下一个构建步骤中,此文件夹中没有文件。
我试图在文件夹内创建空文件以进行测试,例如:touch workspace/requirements/file,但文件夹仍然是空的。
你能帮我解决一下吗。先感谢您!

0 投票
1 回答
1377 浏览

google-cloud-platform - 从 Google Cloud Functions 构建 Docker 映像

作为我的 CD 管道的一部分,我正在设置一个 Google Cloud Function 来处理新的 repo 推送、创建 docker 映像并将它们推送到注册表。我已经在一台虚拟机上工作,但没有必要为此让一台 24x7 运行。

因此,查看NodeJS 参考库,我找不到使用 node.js 将图像推送到注册表的方法。似乎没有注册表或为节点构建 sdk?

基本上,我只需要从云函数执行这个命令: gcloud builds submit --tag gcr.io/my_project/my_image.

0 投票
2 回答
2757 浏览

npm - Google Cloud Builds,如何加快应用程序的构建时间(npm 包)

我的网络应用运行在谷歌云平台上,最近我意识到应用的构建时间非常长,尤其是当你在测试一个特性时,比如说刷新页面,你可以看到启动应用需要很长时间。我正在寻找的是如何加快这个过程。我正在使用 docker 图像在谷歌云注册表上构建。我不想每次都重新构建所有 npm 包,当某些 npm 包中有更新时,我想重新构建应用程序。

这是我用于聚合物的 cloudbuild.yaml 文件

然后这是我的主要 cloudbuild.yaml 文件

我特别阅读了 Google Cloud API 部分“加快构建速度”(https://cloud.google.com/cloud-build/docs/speeding-up-builds

我认为它只是缓存构建图像并使用它。有什么方法可以在 Google Cloud 中专门缓存 npm 包、依赖项等,这样我就不必每次都构建整个应用程序?我的主要目标是减少构建时间,加快构建过程。

谢谢!

0 投票
2 回答
434 浏览

google-cloud-platform - 构建触发器在 Cloud Build 上的 RegExp 中无法识别 Negative Lookahead

我使用 Cloud Build 作为 CI/CD 解决方案。我的分支策略遵循以下模式:devstage并且prod分支准确地反映了我在每个环境中所拥有的内容。任何其他分支只是开发的常规分支。

通过遵循这种模式,我需要在除主要分支之外的任何分支中构建/测试,并且仅在推送位于 dev/stage/prod 时进行部署。

由于 Cloud Build 不支持在单个 YAML 文件中表达这一点,我有两个:build.yamldeploy.yaml.

然后我创建了两个构建触发器,如下所示:

在此处输入图像描述

第一个工作得很好,deploy.yaml如果有任何东西被推送到,它会触发中描述的步骤dev/stage/prod。但第二个,虽然它接受正则表达式并评估分支的预览(注意你看不到主分支):

在此处输入图像描述

当构建被触发时(是的,它是自动触发的!),它会失败:

在此处输入图像描述

一些谷歌搜索告诉我 Go-lang(据说是在这里评估这个正则表达式的后端)不支持 RegExp 中的 Lookahead。

我怎么解决这个问题?

0 投票
2 回答
960 浏览

flask - 如何在 Google Cloud Functions 的 python 环境中检查 HTTP 基本身份验证

这怎么可能实现?

我不确定是否可以使用各种与烧瓶相关的库,因为它们使用 python 装饰器——而且我无权访问 Flask 路由。

我的解决方案是手动获取标头,并手动解析授权字符串。但我实际上不确定Authorization以下是什么格式 - 是否有一些库可以为我处理这种复杂情况?

0 投票
1 回答
97 浏览

docker - Cloud Build docker build 与本地 docker build 有不同的构建输出?

我遇到了一个非常奇怪的问题,Dockerfile当它在 GCP Cloud Build 上构建时,它的一个步骤失败了。

然而,它在本地构建就好了。

问题的原因可能是什么?为什么会有任何不同?

无法构建的实际命令是npm build容器内的。