我正在与多个合作者一起开展一个项目;为了共享代码和计算环境,我们设置了一个 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 是否允许这种功能?是否有实现此目的的最佳实践方法?如果没有,我很好奇是否有人知道排除此功能背后的动机和/或为什么它不是一个好主意。
提前致谢。