将卷装载作为外部文件传递(docker compose)
我有一个docker-compose.yml文件,如下所示:将卷装载作为外部文件传递(docker compose),docker,docker-compose,Docker,Docker Compose,我有一个docker-compose.yml文件,如下所示: name: image: docker/container container_name: coolcontainer restart: always volumes: - ${DIR1PATH}:/storage/${DIR1} - ${DIR2PATH}:/storage/${DIR2} - ${DIR3PATH}:/storage/${DIR3}
name:
image: docker/container
container_name: coolcontainer
restart: always
volumes:
- ${DIR1PATH}:/storage/${DIR1}
- ${DIR2PATH}:/storage/${DIR2}
- ${DIR3PATH}:/storage/${DIR3}
- ${DIR4PATH}:/storage/${DIR4}
是否可以将所有卷装载存储在单独的文件中,以便将docker-compose.yml替换为:
name:
image: docker/container
container_name: coolcontainer
restart: always
volumes:
${CUSTOM_MOUNTS_FILE}
与您的要求不同,但您可以将多个撰写文件合并在一起。其中一个文件可能包含您的附加卷,而第一个文件只是您的服务定义。您的第二个文件如下所示:
version: '3'
services:
name:
volumes:
- ${DIR1PATH}:/storage/${DIR1}
- ${DIR2PATH}:/storage/${DIR2}
- ${DIR3PATH}:/storage/${DIR3}
- ${DIR4PATH}:/storage/${DIR4}
compose中还有一些扩展字段,允许您定义值,然后使用yaml锚定和别名插入值。例如。我认为docker compose和yaml文件本身是不可能的。您可能需要创建一些ShellScript或go程序来实现这一点。好的,不用担心,谢谢!我目前正在通过以只读方式从docker主机挂载“/”来解决这个问题—这可能不是最好的方法,但它可以工作,因为它包含/mnt/中的所有根文件和驱动器。您实际想做什么,您需要超过三个卷挂载?备份;我在docker中运行了Duplicati,我在GitHub上运行了docker-compose.yml,我希望使其尽可能通用,即不硬编码可能与其他文件无关的文件路径。我看,有没有办法引用第一个docker compose文件中的第二个docker compose文件,或者在运行docker compose命令时,它们是否都需要作为文件参数传递?啊,那真的很有用!不过,在这种情况下,可能与您的其他建议不太接近