【发布时间】:2021-06-18 05:09:12
【问题描述】:
我正在尝试在 Cloud Run 上部署我的 FastAPI 应用程序,并且我想在 Dockerfile 中复制我的 GCS 存储桶上的一个文件并在 API 中读取它。它不会以某种方式复制文件。
这是我的 Dockerfile 中的复制行:
FROM google/cloud-sdk AS gcloud
RUN mkdir ./models
RUN gsutil cp gs://rim-models/model_1.pkl ./models/model_1.pkl
当我用gcloud builds submit --tag gcr.io/project-id/api-name --timeout=3600创建图像时,它显示文件被复制:
Copying gs://rim-models/model_1.pkl ...
- [1 files][399.8 KiB/399.8 KiB]
Operation completed over 1 objects/399.8 KiB.
但是,我在 API 中遇到了这个错误:
FileNotFoundError: [Errno 2] No such file or directory: 'models/model_1.pkl'
当我在本地运行命令gsutil cp gs://rim-models/model_1.pkl ./models/model_1.pkl 时,它会将文件model_1.pkl 复制到我的本地目录models。那么为什么我将应用部署到 Cloud Run 时它不起作用?
编辑:将所有 models 路径更改为全部相对或全部绝对后,错误仍然存在。
【问题讨论】:
标签: docker google-cloud-run google-cloud-build