如何在Google Cloud Platform上加快bazel构建

Fabrizio M.

我正在使用gcr.io/cloud-builders/bazelGoogle容器构建构建图像。

从日志中看,似乎花费了大部分时间来设置bazel工作区。这个工作空间在构建之间并没有变化,因此我认为可以预先计算并存储在新映像中。

如何加快在Google Cloud Platform上构建这些bazel的速度?

Already have image (with digest): gcr.io/cloud-builders/bazel
Extracting Bazel installation...
........................
Loading: 
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 0 packages loaded
WARNING: /builder/home/.cache/bazel/_bazel_root/eab0d61a99b6696edb3d2aff87b585e8/external/io_bazel_rules_go/go/def.bzl:137:3: DEPRECATED: com_github_golang_protobuf : new_go_repository is deprecated. Please migrate to go_repository soon.
WARNING: /builder/home/.cache/bazel/_bazel_root/eab0d61a99b6696edb3d2aff87b585e8/external/io_bazel_rules_go/go/def.bzl:137:3: DEPRECATED: com_github_golang_glog : new_go_repository is deprecated. Please migrate to go_repository soon.
WARNING: /builder/home/.cache/bazel/_bazel_root/eab0d61a99b6696edb3d2aff87b585e8/external/io_bazel_rules_go/go/def.bzl:137:3: DEPRECATED: org_golang_google_grpc : new_go_repository is deprecated. Please migrate to go_repository soon.
WARNING: /builder/home/.cache/bazel/_bazel_root/eab0d61a99b6696edb3d2aff87b585e8/external/io_bazel_rules_go/go/def.bzl:137:3: DEPRECATED: org_golang_x_net : new_go_repository is deprecated. Please migrate to go_repository soon.
WARNING: /builder/home/.cache/bazel/_bazel_root/eab0d61a99b6696edb3d2aff87b585e8/external/io_bazel_rules_go/go/def.bzl:137:3: DEPRECATED: com_github_gogo_protobuf : new_go_repository is deprecated. Please migrate to go_repository soon.
WARNING: /builder/home/.cache/bazel/_bazel_root/eab0d61a99b6696edb3d2aff87b585e8/external/io_bazel_rules_go/go/def.bzl:137:3: DEPRECATED: com_github_grpc_ecosystem_grpc_gateway : new_go_repository is deprecated. Please migrate to go_repository soon.
WARNING: /builder/home/.cache/bazel/_bazel_root/eab0d61a99b6696edb3d2aff87b585e8/external/io_bazel_rules_go/go/def.bzl:137:3: DEPRECATED: org_golang_google_genproto : new_go_repository is deprecated. Please migrate to go_repository soon.
Analyzing: target //:docker (4 packages loaded)
Analyzing: target //:docker (5 packages loaded)
Analyzing: target //:docker (6 packages loaded)
Analyzing: target //:docker (76 packages loaded)
Analyzing: target //:docker (78 packages loaded)
Analyzing: target //:docker (78 packages loaded)
Analyzing: target //:docker (79 packages loaded)
Analyzing: target //:docker (79 packages loaded)
Analyzing: target //:docker (80 packages loaded)
Analyzing: target //:docker (160 packages loaded)
Analyzing: target //:docker (160 packages loaded)
Analyzing: target //:docker (160 packages loaded)
Analyzing: target //:docker (160 packages loaded)
Analyzing: target //:docker (174 packages loaded)
Analyzing: target //:docker (174 packages loaded)
Analyzing: target //:docker (211 packages loaded)
INFO: Analysed target //:docker (286 packages loaded).
INFO: Found 1 target...
[0 / 1] BazelWorkspaceStatusAction stable-status.txt
[17 / 19] SHA256 external/golang/image/002.tar.gz.nogz.sha256
[42 / 281] no action running
[51 / 290] no action running
[63 / 302] no action running
[80 / 319] no action running
[101 / 340] no action running
[118 / 358] no action running
[138 / 378] no action running
[168 / 407] Compiling external/com_github_google_protobuf/src/google/protobuf/compiler/csharp/csharp_message_field.cc [for host]; 0s linux-sandbox
[200 / 439] Compiling external/com_github_google_protobuf/src/google/protobuf/extension_set.cc [for host]; 1s linux-sandbox
INFO: From ProtoCompile assets/assets/assets.pb.gw.go:
assets/assets/assets.proto: warning: Import recipes.proto but not used.
INFO: From ProtoCompile assets/assets/assets.swagger.json:
assets/assets/assets.proto: warning: Import recipes.proto but not used.
INFO: From ProtoCompile assets/assets/assets.pb.go:
assets/assets/assets.proto: warning: Import recipes.proto but not used.
[522 / 697] GoCompile vendor/github.com/gorilla/mux/~lib~/go_default_library.o; 0s linux-sandbox
Target //:docker up-to-date:
bazel-bin/docker-layer.tar
INFO: Elapsed time: 331.343s, Critical Path: 13.73s
INFO: Build completed successfully, 737 total actions

编辑:添加cloudbuild文件

cloudbuild.yaml:

steps:
- name: gcr.io/cloud-builders/bazel
  args: ['run', '//:docker']
- name: gcr.io/cloud-builders/docker
  args: ['tag', 'bazel:docker', '${_IMAGE_TAG}']
images: ['${_IMAGE_TAG}']
大卫·本多里

Container Builder目前不提供此功能,但您可以自己完成。

  1. 将一个或多个添加volumes到构建步骤,以输出要在以后的构建中还原的信息。(请参阅有关卷的文档。)
  2. 如有必要,请修改这些构建步骤,以将要保留的数据输出到卷提供的路径中。
  3. 在后续的构建步骤中,使用gsutil 构建步骤将卷中的所有数据保存到GCS存储桶中。(当然,您可以根据需要使用其他实用程序将其保存到其他位置。)

在以后的构建中,用于gsutil将数据还原到所需的卷,并将该卷装入后续的构建步骤。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Google Cloud Platform上安装Godaddy SSL证书

如何在 Google Cloud Platform 上安装 Tink 加密库?

如何在 Google Cloud Platform 上安装 Wordpress 4.9

如何在Google Cloud Platform上为多个VM和项目共享单个Cloud Storage

如何在Google Cloud Platform中获取服务的DNS名称?

如何在Google Cloud Platform中配置特定的数据管道?

如何在 Google Cloud Platform 中安装 cmake

如何在Google Cloud Platform中备份本地SSD

如何在 Google Cloud Platform 上的 App Engine 中更改 php 版本(运行时)?

如何在Google Cloud Platform上使用ClusterIP None公开StatefulSet服务?

如何在Google Cloud Platform中的Ubuntu上打开端口

如何在Google Cloud Platform上从Docker镜像使用neo4j

如何在Google Cloud Platform上从PHP 7.0升级到7.3?

如何在Google Cloud Platform的Kubernetes Engine上添加资源和限制

如何在Google Cloud Platform上提交Spark Graphx职位示例?

如何在 Google Cloud 上运行 Laravel 调度程序

如何在Travis上安装Google Cloud SDK?

如何在Google Cloud Composer辅助节点上更新gcloud?

如何在Google Cloud Run上运行WordPress?

如何在 Google Cloud App Engine 上运行 PHP 服务

如何在 Google Cloud Functions 上运行 cython 的共享库?

如何在Google Cloud Functions上运行C ++文件?

如何在Google Cloud Console上安装python 3?

可以或如何在Google Cloud Functions上使用Python asyncio?

如何在Google Cloud App Engine上重写URL?

如何在python 3.5.2上安装Google Cloud SDK

如何在Google Cloud上使用已安装的mongodb

如何在Google Cloud VM上安装Magento主题?

Google Cloud Platform:如何重命名Google Cloud Platform项目?