Я работаю над проектом с несколькими соавторами; для совместного использования кода и вычислительной среды мы создали репозиторий 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 в сценарий оболочки (потенциальное решение практически любой проблемы), но это также выглядит неуклюжим. Я не могу не подозревать, что здесь есть лучшее решение. Предоставляет ли docker-compose такой функционал? Есть ли лучший способ добиться этого? Если нет, мне любопытно, знает ли кто-нибудь, какова может быть мотивация исключения этой функциональности и/или почему это не считается хорошей идеей.
Заранее спасибо.