gpt4 book ai didi

docker - 如何为docker-compose指定特定于站点的卷

转载 作者:行者123 更新时间:2023-12-02 19:29:30 24 4
gpt4 key购买 nike

我正在一个有多个合作者的项目中;为了共享代码和计算环境,我们建立了一个github存储库,其中包括Dockerfiledocker-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是否允许这种功能?是否有实现此目的的最佳做法?如果不是,我很好奇是否有人知道排除此功能的动机是什么,和/或为什么不认为它是个好主意。

提前致谢。

最佳答案

你非常亲密。我要添加的是,您有一个主机特定的.env文件,请参阅Environment variables in Compose,该文件位于每台计算机上与docker-compose.yml相同的文件夹中,并带有

DATA_PATH=/mnt/shared/data

或您喜欢的 DATA_PATH的任何值。只需将 .env添加到您的 .gitignore中,以便每个主机都将自己的配置保留在存储库之外,仅此而已。

关于docker - 如何为docker-compose指定特定于站点的卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52857974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com