我已经在一个repo中添加了代码来构建一个Cloud Run服务,结构如下:
我想在cr中运行b.py。有没有什么方法可以部署cr而不只是复制b.py到cr目录?(我不想这样做,因为这里有很多其他文件夹和b.py代表的文件).问题是由于Dockerfile无法看到上面的文件夹.还有,例如api.py如何从b.py导入?你们这些可爱的人。
cr
b.py
api.py
xtfmy6hx1#
您必须使用正确的参数来构建容器,因此,不能使用gcloud run deploy --source=. ....来构建具有缺省参数的容器在docker中,默认情况下Dockerfile位于PATH/Doker文件中,但是您可以使用-f参数来指示Dockerfile的位置。例如,您可以这样做
gcloud run deploy --source=. ....
Dockerfile
-f
cd top docker build -f ./a/cr/Dockerfile .
像这样,您向docker构建运行时提供当前路径(这里是top,表示当前路径,但结尾处的点是.)。您还可以在当前路径中指定Dockerfile的完整路径。因此,您必须更新Dockerfile,因为COPY . .将不再复制cr路径,而是复制整个top目录。
top
.
COPY . .
1条答案
按热度按时间xtfmy6hx1#
您必须使用正确的参数来构建容器,因此,不能使用
gcloud run deploy --source=. ....
来构建具有缺省参数的容器在docker中,默认情况下
Dockerfile
位于PATH/Doker文件中,但是您可以使用-f
参数来指示Dockerfile
的位置。例如,您可以这样做
像这样,您向docker构建运行时提供当前路径(这里是
top
,表示当前路径,但结尾处的点是.
)。您还可以在当前路径中指定
Dockerfile
的完整路径。因此,您必须更新
Dockerfile
,因为COPY . .
将不再复制cr
路径,而是复制整个top
目录。