2015-02-06 185 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 
相關問題