首页 > 解决方案 > 如何为安装了 Bazel、Kubectl 和 Gcloud 的 Cloud Build 创建 Slim Docker 映像?

问题描述

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

安装。目前我有一个 1GB 大小的巨大 docker 镜像,里面可能堆满了我不需要的东西。因此,我的构建时间飙升至 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 映像会是什么样子?

标签: dockergcloudbazelkubectlgoogle-cloud-build

解决方案


目前我使用下面的图片。但是它没有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" ]

推荐阅读