问题标签 [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 投票
4 回答
5960 浏览

google-app-engine - 如何授予帐户列出已启用 API 的权限?

在 Cloud Build 上构建期间,我收到以下警告:

Step #2: WARNING: Unable to verify that the Appengine Flexible API is enabled for project [xxxxx]. You may not have permission to list enabled services on this project. If it is not enabled, this may cause problems in running your deployment. Please ask the project owner to ensure that the Appengine Flexible API has been enabled and that this account has permission to list enabled APIs.

我想摆脱这个警告以获得干净的构建日志。

由于构建成功,问题一定不是 Appengine Flexible API 被禁用。

不; 问题一定是该帐户无权列出已启用的 API。我该如何解决这个问题(在控制台或命令行中)?

0 投票
6 回答
6048 浏览

google-cloud-platform - 如何通过 cli / rest api / cloud 功能运行 Google Cloud Build 触发器?

有这样的选择吗?我的用例将运行生产构建的触发器(部署到生产)。理想情况下,该触发器不需要监听任何更改,因为它是通过聊天机器人手动调用的。

我看到了这个视频CI/CD for Hybrid and Multi-Cloud Customers (Cloud Next '18),宣布支持 API 触发器,我不确定这是否是我需要的。

0 投票
0 回答
51 浏览

google-cloud-platform - 谷歌云源构建触发器

我正在尝试为我使用 Python 运行时(Beta 版)构建的云功能设置 CI/CD。我能够手动部署该功能,但我无法执行云构建器。我被 403 禁止了。我也设置了具有功能开发人员角色的云构建服务帐户。

构建正在正确触发。

下面是错误。

已经有图像(带摘要):gcr.io/cloud-builders/gcloud 错误:(gcloud.beta.functions.deploy)ResponseError:状态=[403],代码=[禁止],消息=[调用者没有权限]错误错误:构建步骤0“gcr.io/cloud-builders/gcloud”失败:退出状态1

任何帮助表示赞赏。

0 投票
6 回答
6191 浏览

kubernetes - Google Cloud Build 部署到 GKE 私有集群

我正在运行带有“私有集群”选项的 Google Kubernetes Engine。我还定义了“授权主网络”以能够远程访问环境 - 这很好用。现在我想使用 Google Cloud Build 设置某种 CI/CD 管道 - 在成功构建新的 docker 镜像后,这个新镜像应该会自动部署到 GKE。当我第一次启动新管道时,部署到 GKE 失败 - 错误消息类似于:“无法连接到服务器:dial tcp xxx.xxx.xxx.xxx:443: i/o timeout”。由于我怀疑“授权主网络”选项是连接超时的根本原因,因此我添加了 0.0.0. 0/0 到允许的网络并再次启动 Cloud Build 作业 - 这次一切顺利,在创建 docker 映像后将其部署到 GKE。好的。

剩下的唯一问题是我真的不想让整个互联网都能够访问我的 Kubernetes 主服务器——这是个坏主意,不是吗?

是否有更优雅的解决方案可以通过使用允许的主网络并能够通过云构建进行部署来缩小访问范围?

0 投票
0 回答
116 浏览

google-cloud-build - Google Cloud Build 中容器之间的网络连接

Google Cloud Build 中的容器之间是否有任何网络连接,如果有,DNS 约定是什么?

例如,在 Drone 中,可以在分离的容器中运行服务器,然后从另一个容器中访问该服务器。

0 投票
1 回答
106 浏览

docker - Dockerfile 在 Google Cloud Build 上构建不打印测试日志

我有一个简单的Dockerfile

我在Google Cloud Build中运行它并获得以下日志:

在步骤6/6, npm run test,我没有看到本地机器上的日志:

npm run test

如何让这些日志显示在构建日志中?

0 投票
1 回答
848 浏览

google-cloud-platform - 如何过滤基于多个标签的云构建器构建?

是否可以使用过滤包含多个标签的构建gcloud?尽管存在构建,但以下命令返回零命中:

gcloud builds list --filter "tags='issueid-123' AND tags='team-frontend'"

当过滤单个标签时,它会返回预期的结果。GCP 构建 Web UI 中的过滤器框中似乎存在同样的问题。

0 投票
3 回答
3855 浏览

docker - 在 Google Cloud 构建中的两个容器之间进行通信

我在 Google 云构建中运行我的 CI/CD 管道。我的应用程序有webwget容器。我试图webwget

云构建内部使用的cloudbuild桥接网络,同时启动容器作为步骤。所以我期待这些步骤可以使用名称进行交流。但它失败了。

如果我创建自己的 docker bridge netwok,那么他们会进行通信。

我想知道为什么 cloudbuild 网络没有按预期工作。

如果您知道在步骤容器之间建立通信的任何其他方法,请告诉我。

cloudbuild.yaml

为了理解 cloudbuild 的内部结构,我使用了一些 docker 命令。

调试-cloudbuild.yaml

0 投票
1 回答
1476 浏览

docker - 来自 Google Cloud Build Dockerfile 的 Google AppEngine ENV 变量

所以我有一个 CloudBuild 触发器来构建我的cloudbuild.yaml文件,这一切都很好。我还使用 gcloud builder 运行 docker 命令将 ENV 变量传递给我的Dockerfile. 例如:

如您所见,我使用的是所有 GCP 资源默认具有的 ENV 变量。($PROJECT_ID例如)。在 docker 命令中,我将它作为参数传递,因此我可以ARG在 dockerfile 中使用该命令:

现在所有这些工作正常,我可以构建我的图像等。现在我想在最后一步部署到应用程序引擎。唯一的问题是我使用相同的 Dockerfile 来使用swift:4.2仅位于我的 GoogleContainerRegistry 中的基本映像,所以我需要$PROJECT_ID我的项目来提取它。

我的问题是:有没有办法让 AppEngine 构建环境在部署时将参数传递给构建我的映像的 docker build?我有一个app.yaml文件,我知道有一个env_variables:属性,我知道我可以使用 dockerARGENV命令(不记得是哪个)来获取我$PROJECT_ID的 Dockerfile。但唯一的问题是据我所知,AppEngine 没有定义该属性。我能想到的唯一另一件事是echo$PROJECT_IDCloud Builder 步骤到app.yaml文件末尾。但如果有更清洁的方法,我很想听听。谢谢!

0 投票
3 回答
1522 浏览

google-cloud-build - Google CloudBuild 工件 YAML

我在这里关注了 Google CloudBuild 的文档:https ://cloud.google.com/cloud-build/docs/configuring-builds/store-images-artifacts

所以这是我的cloudbuild.yaml配置:

如果我注释掉以下内容,则它会成功运行:

如果没有注释,我会从 CloudBuild 控制台收到以下错误:

failed unmarshalling build config cloudbuild.yaml: json: cannot unmarshal array into Go value of type string

Logs部分下,它只是说Logs available