【问题标题】:How to Create a Slim Docker Image for Cloud Build with Bazel, Kubectl and Gcloud Installed?如何为安装了 Bazel、Kubectl 和 Gcloud 的 Cloud Build 创建 Slim Docker 映像?
【发布时间】:2020-05-20 14:47:09
【问题描述】:

我想从 Google Cloud Build 步骤运行 k8s_objects Bazel 规则,该步骤将新配置部署到我的集群。因此我需要一个带有

的Docker镜像
  • bazel(显然用于运行 bazel 目标)
  • kubectl(用于将新配置应用到我的集群)
  • gcloud(用于对我的 Google Kubernetes Engine 集群进行身份验证)

已安装。目前我有this huge docker image,它的大小为 1GB,可能堆满了我不需要的东西。因此,我的构建时间飙升至 10 分钟甚至更多。

这就是我的cloudbuild.yaml 的样子:

steps:
  - name: eu.gcr.io/cents-ideas/slim-bazel-kubectl
    entrypoint: /bin/sh
    args:
      - -c
      - |
        gcloud container clusters get-credentials cents-ideas --zone europe-west3-a --project cents-ideas

只有我需要的包的小型 docker 镜像会是什么样子?

【问题讨论】:

  • 一个较小的 Dockerfile 示例,它具有 bazelkubectlgcloud,您可以找到 here
  • 太棒了,我会试试的! :)
  • 我认为这张图片已经过时了。出现错误:COPY failed: stat /var/lib/docker/tmp/docker-builder613695822/gcloud.pub.gpg: no such file or directory
  • 请仔细检查,因为Dockerfile 中的COPY 指令将src 中的文件复制到dest 文件夹。您必须要么缺少 gcloud.pub.gpg 文件,要么从错误的目录构建 Dockerfile。

标签: docker gcloud bazel kubectl google-cloud-build


【解决方案1】:

目前我使用下面的图片。但是它没有安装kubectl

FROM ubuntu:18.04

RUN apt-get update
RUN apt-get -y install curl gnupg unzip python python3 git build-essential

# nodejs
RUN apt-get -y install nodejs

# yarn
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
  echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
  apt-get update && apt-get -y install yarn

# bazelisk
RUN yarn global add @bazel/bazelisk --prefix /usr/local && bazelisk version

WORKDIR /app

ENTRYPOINT [ "bazelisk" ]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 2021-09-20
    • 2021-11-14
    • 2019-07-05
    • 1970-01-01
    • 2021-05-14
    • 2020-06-02
    相关资源
    最近更新 更多