问题标签 [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.
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
你能帮我解决一下吗?
提前致谢!
kubernetes - 更新映像时 Google Cloud Build 找不到 kubernetes 部署
我正在尝试使用 Cloud Build 设置 CI 管道。我的构建文件构建并推送 Docker 镜像,然后使用kubectl
构建器更新 kubernetes 部署中的镜像。但是我收到以下错误:
我已通过 UI 验证部署处于活动状态并具有该名称。认为这可能是权限问题,但据我所知,Cloud Build 服务帐户具有 Kubernetes Engine 管理员角色,并且能够在上一步中成功提取集群身份验证数据。
编辑:根据要求,这是我的构建脚本:
而deployment.yaml——
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 的问题。
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
- 它创建版本并且不起作用
docker - Google Cloud Build - 结果不会跨步骤保存
我使用远程构建器社区映像从内部 GC ComputeEngine 实例下载一些受保护的依赖项。
cloudbuild.yaml中的这一步如下所示:
构建.bash:
所以我将我的库复制到该workspace/requirements
文件夹中。
但是在下一个构建步骤中,此文件夹中没有文件。
我试图在文件夹内创建空文件以进行测试,例如:touch workspace/requirements/file
,但文件夹仍然是空的。
你能帮我解决一下吗。先感谢您!
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
.
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 包、依赖项等,这样我就不必每次都构建整个应用程序?我的主要目标是减少构建时间,加快构建过程。
谢谢!
google-cloud-platform - 构建触发器在 Cloud Build 上的 RegExp 中无法识别 Negative Lookahead
我使用 Cloud Build 作为 CI/CD 解决方案。我的分支策略遵循以下模式:dev
,stage
并且prod
分支准确地反映了我在每个环境中所拥有的内容。任何其他分支只是开发的常规分支。
通过遵循这种模式,我需要在除主要分支之外的任何分支中构建/测试,并且仅在推送位于 dev/stage/prod 时进行部署。
由于 Cloud Build 不支持在单个 YAML 文件中表达这一点,我有两个:build.yaml
和deploy.yaml
.
然后我创建了两个构建触发器,如下所示:
第一个工作得很好,deploy.yaml
如果有任何东西被推送到,它会触发中描述的步骤dev/stage/prod
。但第二个,虽然它接受正则表达式并评估分支的预览(注意你看不到主分支):
当构建被触发时(是的,它是自动触发的!),它会失败:
一些谷歌搜索告诉我 Go-lang(据说是在这里评估这个正则表达式的后端)不支持 RegExp 中的 Lookahead。
我怎么解决这个问题?
flask - 如何在 Google Cloud Functions 的 python 环境中检查 HTTP 基本身份验证
这怎么可能实现?
我不确定是否可以使用各种与烧瓶相关的库,因为它们使用 python 装饰器——而且我无权访问 Flask 路由。
我的解决方案是手动获取标头,并手动解析授权字符串。但我实际上不确定Authorization
以下是什么格式 - 是否有一些库可以为我处理这种复杂情况?
docker - Cloud Build docker build 与本地 docker build 有不同的构建输出?
我遇到了一个非常奇怪的问题,Dockerfile
当它在 GCP Cloud Build 上构建时,它的一个步骤失败了。
然而,它在本地构建就好了。
问题的原因可能是什么?为什么会有任何不同?
无法构建的实际命令是npm build
容器内的。