【发布时间】:2019-01-19 00:58:19
【问题描述】:
我对 Docker 有点陌生,我正在尝试将资源从我的云存储桶复制到使用 docker 映像创建的实例中。我在Dockerfile 中使用gsutil 和以下内容
# Install Google Cloud tools - Debian https://cloud.google.com/storage/docs/gsutil_install#deb
ENV CLOUD_SDK_REPO="cloud-sdk-stretch"
RUN echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO 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 add - && \
apt-get update && apt-get install -y google-cloud-sdk
# Setup Google Service Account
COPY service-account.json /etc/
ENV GOOGLE_APPLICATION_CREDENTIALS="/etc/service-account.json"
RUN gcloud auth activate-service-account --key-file=${GOOGLE_APPLICATION_CREDENTIALS}
# Copy the last updated ssl config
RUN gsutil cp -r gs://my-project.appspot.com/docker/etc/letsencrypt /etc/ && \
gsutil cp -r gs://my-project.appspot.com/docker/etc/apache2/sites-available /etc/apache2/
当我在本地机器上运行它时,文件会被 gsutil 正确复制。 (它们在我运行 docker 映像时存在)
当我部署到 Google Container Registry 并在 GCE 实例上使用 docker 映像时,正在运行的 docker 映像上不存在文件。
我可以从 google 构建日志中看到 gsutil 似乎工作正常并且正在复制文件(在构建过程中)。
我做错了什么?这是一个错误吗?
任何帮助表示赞赏!
【问题讨论】:
标签: docker google-cloud-storage google-compute-engine gsutil google-container-registry