如何使用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