设置
我的本地机器上有10多个图像,未来可能会有数TB的图像,在这种情况下它将被托管,即aws。这些图像将被提供给某个网站,也可作为机器学习管道的输入。
现在我在我的本地机器上开发。源代码位于path/to/src
,数据位于path/to/images
。我已经使用Docker
设置了Dockerfile
个环境:
FROM bamos/openface
ADD . /face-off
WORKDIR /face-off
RUN pip install -r requirements.txt
EXPOSE 5000
CMD [ "python", "app.py" ]
和docker-compose
档案:
version: '2'
services:
web:
build: .
image: face-off-web
command: python app.py
ports:
- "5000:5000"
volumes:
- .:/face-off
redis:
image: "redis:alpine"
问题
由于我在Docker
容器中开发,我需要访问path/to/images
中的所有图片。现在让我们保持简单,并说我使用预先指定的磁盘路径读取图像。我认为我的选择是:
一种显而易见的方法是将所有图像移动到path/to/src
,但这对我来说似乎很脏。
另一种可能性是ADD
Dockerfile
中的目录。那么我需要将两个目录移动到path/to/project
所在的Dockerfile
。然后将src移至path/to/project/src
,将数据移至path/to/project/data
。但这又有点像选项1。
使用docker-compose
以某种方式显示数据。尽管阅读docker volume
上的文档,我现在还不知道如何做到这一点。
处理此问题的惯用方法是什么?如果方式是选项3,有人可以解释一下吗?
答案 0 :(得分:2)
- 使用docker-compose以某种方式显示数据。尽管阅读了有关码头卷的文档,我现在还不知道该怎么做。
醇>
对于您的用例,您希望将主机路径安装到容器中,就像您已经使用项目工作目录一样。只需为图像添加另一行:
version: '2'
services:
web:
build: .
image: face-off-web
command: python app.py
ports:
- "5000:5000"
volumes:
- .:/face-off
- /images/on/host:/path/in/container
redis:
image: "redis:alpine"