如何使用Google's Cloud Command Line Tool/SDK構建Docker容器?如何在Docker鏡像中安裝Google Cloud SDK?
URL https://sdk.cloud.google.com上的腳本似乎需要用戶輸入,因此在docker文件中不起作用。
如何使用Google's Cloud Command Line Tool/SDK構建Docker容器?如何在Docker鏡像中安裝Google Cloud SDK?
URL https://sdk.cloud.google.com上的腳本似乎需要用戶輸入,因此在docker文件中不起作用。
將下列內容添加到我的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
使用此一班輪在你的Dockerfile:
RUN curl -sSL https://sdk.cloud.google.com | bash
Worke d'ENV PATH $ PATH:/ usr/local/gcloud/google-cloud-sdk/bin' – Narek 2017-05-04 23:52:25
安裝位置會因各種安裝而有所不同,但這裏的理論是有聲的 – deepelement 2017-05-19 14:54:14
作爲替代方案,你可以使用由谷歌即google/cloud-sdk
提供的泊塢窗圖像。 https://hub.docker.com/r/google/cloud-sdk/
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
文件夾將包含該配置。
RUN curl -sSL https://sdk.cloud.google.com > /tmp/gcl && bash /tmp/gcl --install-dir=~/gcloud --disable-prompts`
請解釋您剛添加的代碼,以改善你的答案。避免發佈代碼只有答案或問題... – 2017-08-29 20:46:07
這是正確的迴應。確保你的Docker容器中安裝了'tar'和'which'。 – Dovy 2017-09-20 17:52:54
我最常用的這些例子在某種形式(感謝@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
我要補充了方便PATH環境變量的ENV指令: ENV $ PATH:/ usr/local/gcloud/google-cloud-sdk/bin – Silviu 2015-02-06 19:21:51
我想你需要'ENV PATH $ PATH:/ usr/local/gcloud/google-cloud -sdk/bin' – Narek 2017-05-04 23:15:09
我想你現在需要/usr/local/gcloud/google-cloud-sdk/install.sh --quiet(需要添加安靜標誌以避免手動步驟) – 2018-02-11 21:35:26