管理持久性数据存储设置惯用方式泊坞
我有图像的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,有人可以解释一下吗?
当我这样做时,我得到:“错误:在文件'./docker-compose.yml'服务'卷'没有任何配置选项您的docker-compose.yml中的所有顶级密钥必须映射到配置选项字典“。 – chibro2
重新检查缩进,目前docker-compose假设'volumes'是一项服务,我只发布了一个docker-compose.yml的片段,我假设' - 。:/ face-off'就足够了。 –
啊,所以我在版本1.6.0上,即使在我的撰写文件中它说版本2.当你说当前你的意思是版本2或3? – chibro2