【发布时间】:2018-10-17 15:02:25
【问题描述】:
我正在与多个合作者一起开展一个项目;为了共享代码和计算环境,我们建立了一个 github 存储库,其中包括一个 Dockerfile 和 docker-compose.yml 文件。我可以编写代码,我的协作者只需拉取存储库,运行 docker-compose up 并在我开发它们的同一环境中访问我的 jupyter 笔记本。
唯一的问题是,由于我们在不同的站点工作,我们计算的数据位于不同的位置。所以最后,我希望我的docker-compose.yml 包括:
volumes:
- /mnt/shared/data:/data
而我的合作者需要它来表达类似的东西
volumes:
- /Volumes/storage/data:/data
我知道一种方法是使用环境变量;在docker-compose.yml 文件中:
volumes:
- "$DATA_PATH":/data
这迫使他们运行类似的东西:
DATA_PATH=/Volumes/storage/data docker-compose up
作为一种解决方案,这不一定是问题,但我觉得它很笨拙,并且无法在存储库中进行自我记录。我可以将 docker-compose 包装在一个 shell 脚本中(几乎可以解决任何问题),但这也让人感觉很笨拙。我不禁怀疑这里有更好的解决方案。 docker-compose 是否允许这种功能?是否有实现此目的的最佳实践方法?如果没有,我很好奇是否有人知道排除此功能背后的动机和/或为什么它不是一个好主意。
提前致谢。
【问题讨论】:
标签: docker docker-compose mounted-volumes