如何在Docker镜像中安装Google Cloud SDK?

Jer*_*emy 34 google-cloud-platform

如何使用Google的Cloud Command Tool Tool/SDK构建Docker容器?

网址https://sdk.cloud.google.com上的脚本似乎需要用户输入,因此无法在docker文件中使用.

Jer*_*emy 39

将以下内容添加到我的Docker文件似乎可以正常工作.

# Downloading gcloud package
RUN curl https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz > /tmp/google-cloud-sdk.tar.gz

# Installing the package
RUN mkdir -p /usr/local/gcloud \
  && tar -C /usr/local/gcloud -xvf /tmp/google-cloud-sdk.tar.gz \
  && /usr/local/gcloud/google-cloud-sdk/install.sh

# Adding the package path to local
ENV PATH $PATH:/usr/local/gcloud/google-cloud-sdk/bin
Run Code Online (Sandbox Code Playgroud)

  • 我认为你需要`ENV PATH $ PATH:/ usr/local/gcloud/google-cloud-sdk/bin` (3认同)
  • 我想你现在需要/usr/local/gcloud/google-cloud-sdk/install.sh --quiet(需要添加安静标志以避免手动步骤) (3认同)
  • 为方便起见,我会为PATH环境变量添加一个ENV指令:ENV $ PATH:/ usr/local/gcloud/google-cloud-sdk/bin (2认同)

Rad*_*iel 18

在Dockerfile中使用这个单行程序:

RUN curl -sSL https://sdk.cloud.google.com | bash
Run Code Online (Sandbox Code Playgroud)

来源:https: //docs.docker.com/v1.8/installation/google/

  • 使用`ENV PATH $PATH:/usr/local/gcloud/google-cloud-sdk/bin` (4认同)
  • docker 的链接似乎消失了。在 https://news.ycombinator.com/item?id=9497473 找到另一个参考 (3认同)
  • 使用“ENV CLOUDSDK_INSTALL_DIR /usr/local/gcloud/”,您可以定义它的安装位置。来源:https://dl.google.com/dl/cloudsdk/channels/rapid/install_google_cloud_sdk.bash (2认同)
  • 在 `debian:stretch` 上,我还必须添加 `ENV PATH $PATH:/root/google-cloud-sdk/bin` 这样才能工作。 (2认同)

adi*_*ton 14

用高山做的:

 FROM alpine:3.6

 RUN apk add --update \
 python \
 curl \
 which \
 bash

 RUN curl -sSL https://sdk.cloud.google.com | bash

 ENV PATH $PATH:/root/google-cloud-sdk/bin
Run Code Online (Sandbox Code Playgroud)


fre*_*rik 7

Dockerfile:

FROM centos:7

RUN yum update -y && yum install -y \
                    curl \
                    which && \
    yum clean all

RUN curl -sSL https://sdk.cloud.google.com | bash

ENV PATH $PATH:/root/google-cloud-sdk/bin
Run Code Online (Sandbox Code Playgroud)

建造:

docker build . -t google-cloud-sdk
Run Code Online (Sandbox Code Playgroud)

然后运行gcloud

docker run --rm \
--volume $(pwd)/assets/root/.config:/root/.config \
google-cloud-sdk gcloud
Run Code Online (Sandbox Code Playgroud)

...或运行gsutil

docker run --rm \
--volume $(pwd)/assets/root/.config:/root/.config \
google-cloud-sdk gsutil
Run Code Online (Sandbox Code Playgroud)

本地assets文件夹将包含配置。


hir*_*ari 5

或者,您可以使用google提供的docker镜像google/cloud-sdkhttps://hub.docker.com/r/google/cloud-sdk/


小智 5

RUN curl -sSL https://sdk.cloud.google.com > /tmp/gcl && bash /tmp/gcl --install-dir=~/gcloud --disable-prompts`
Run Code Online (Sandbox Code Playgroud)

  • 请解释您刚刚添加的代码,以改善答案。避免只发布代码答案或问题... (4认同)
  • 请随意使用“ENV PATH $PATH:~/gcloud/google-cloud-sdk/bin”将“gcloud”添加到“PATH”中 (4认同)
  • 这是正确的回应。确保您的 docker 容器中安装了 `tar` 和 `which`。 (2认同)

Gal*_*ses 5

要在 docker 容器中安装 gcloud,请按照此处的说明进行操作https://cloud.google.com/sdk/docs/install#deb

基本上你需要运行

RUN apt-get update && \
    apt-get install -y curl gnupg && \
    echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && \
    curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg  add - && \
    apt-get update -y && \
    apt-get install google-cloud-sdk -y
      
Run Code Online (Sandbox Code Playgroud)

在你的 dockerfile 里面