2015-02-06 101 views

回答

10

将下列内容添加到我的Docker文件似乎工作。

RUN curl https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz > /tmp/google-cloud-sdk.tar.gz 
RUN mkdir -p /usr/local/gcloud 
RUN tar -C /usr/local/gcloud -xvf /tmp/google-cloud-sdk.tar.gz 
RUN /usr/local/gcloud/google-cloud-sdk/install.sh 
ENV $PATH:/usr/local/gcloud/google-cloud-sdk/bin 
+2

我要补充了方便PATH环境变量的ENV指令: ENV $ PATH:/ usr/local/gcloud/google-cloud-sdk/bin – Silviu 2015-02-06 19:21:51

+1

我想你需要'ENV PATH $ PATH:/ usr/local/gcloud/google-cloud -sdk/bin' – Narek 2017-05-04 23:15:09

+0

我想你现在需要/usr/local/gcloud/google-cloud-sdk/install.sh --quiet(需要添加安静标志以避免手动步骤) – 2018-02-11 21:35:26

5

使用此一班轮在你的Dockerfile:

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

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

+0

Worke d'ENV PATH $ PATH:/ usr/local/gcloud/google-cloud-sdk/bin' – Narek 2017-05-04 23:52:25

+0

安装位置会因各种安装而有所不同,但这里的理论是有声的 – deepelement 2017-05-19 14:54:14

1

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 

体形:

docker build . -t google-cloud-sdk 

然后运行gcloud

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

...或运行gsutil

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

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

2
RUN curl -sSL https://sdk.cloud.google.com > /tmp/gcl && bash /tmp/gcl --install-dir=~/gcloud --disable-prompts` 
+0

请解释您刚添加的代码,以改善你的答案。避免发布代码只有答案或问题... – 2017-08-29 20:46:07

+0

这是正确的回应。确保你的Docker容器中安装了'tar'和'which'。 – Dovy 2017-09-20 17:52:54

0

我最常用的这些例子在某种形式(感谢@KJoe),但我不得不做其他一些事情设置一切,所以gcloud将在环境中工作。请注意,优选的是,限制的行数(它限制拉所需层)

这里的Dockerfile与gcloud设置一个更完整的示例和延伸的CircleCI图像:

FROM circleci/ruby:2.4.1-jessie-node-browsers 

# user is circleci in the FROM image, switch to root for system lib installation 
USER root 

ENV CCI /home/circleci 
ENV GTMP /tmp/gcloud-install 
ENV GSDK $CCI/google-cloud-sdk 
ENV PATH="${GSDK}/bin:${PATH}" 

# do all system lib installation in one-line to optimize layers 
RUN curl -sSL https://sdk.cloud.google.com > $GTMP && bash $GTMP --install-dir=$CCI --disable-prompts \ 
    && rm -rf $GTMP \ 
    && chmod +x $GSDK/bin/* \ 
    \ 
    && chown -Rf circleci:circleci $CCI 

# change back to the user in the FROM image 
USER circleci 

# setup gcloud specifics to your liking 
RUN gcloud config set core/disable_usage_reporting true \ 
    && gcloud config set component_manager/disable_update_check true \ 
    && gcloud components install alpha beta kubectl --quiet 
相关问题