【发布时间】:2020-06-06 14:24:58
【问题描述】:
我正在 GKE 上构建一个 CI/CD 管道,基于 this guide 来自 Google。
一切都运行良好,除了因为它是一个 Django 项目,我还需要运行 collectstatic 命令并将文件上传到 Google 存储。
在 Dockerfile 我有以下命令:
RUN python manage.py collectstatic --noinput
RUN gsutil rsync -R /home/vmagent/app/myapp/static gs://mystorage/static
Collectstatic 按预期工作,但 gsutil 上传失败并显示以下错误消息:
ServiceException: 401 Anonymous caller does not have storage.objects.create access to mystorage/static/...
验证 gsutil 的最佳方法是什么?
【问题讨论】:
-
“Docker 容器中的文件”你想说什么?容器在运行时创建的文件?还是容器中包含的静态文件?你的 K8S 集群在哪里?在 GCP 上? GKE?还是其他地方?
-
@guillaumeblaquiere 抱歉不清楚,我已经编辑了帖子。集群在 GKE 上运行,文件由 Django
collectstatic命令在运行时创建。 -
您的 VM 的默认服务帐户是什么?该服务帐户的作用是什么?另一个问题,你是如何创建集群的?有没有使用特殊参数?
标签: django docker google-cloud-storage gcloud gsutil