如何通过 yaml 语法实现 docker-compose 内磁盘映射固定路径 + 自定义路径的统一挂载
比如我尝试过锚点方法,可以实现类似效果:
version: "3"
x-common-volumes: &common-volumes
- /data1/:/data1/
- /data2/:/data2/
- /etc/resolv.conf:/etc/resolv.conf
services:
nacos:
image: nacos:latest
volumes: *common-volumes
admin:
image: admin:latest
volumes: *common-volumes
解析后:
---
version: "3"
x-common-volumes:
- /data1/:/data1/
- /data2/:/data2/
- /etc/resolv.conf:/etc/resolv.conf
services:
nacos:
image: nacos:latest
volumes:
- /data1/:/data1/
- /data2/:/data2/
- /etc/resolv.conf:/etc/resolv.conf
admin:
image: admin:latest
volumes:
- /data1/:/data1/
- /data2/:/data2/
- /etc/resolv.conf:/etc/resolv.conf
-------------------------
但是在 volumes 中增加自定义挂载项时就无法使用
比如:
version: "3"
x-common-volumes: &common-volumes
- /data1/:/data1/
- /data2/:/data2/
- /etc/resolv.conf:/etc/resolv.conf
services:
nacos:
image: nacos:latest
volumes: *common-volumes
- ${data_dir}/nacos_data:/opt/nacos/data
admin:
image: admin:latest
volumes: *common-volumes
- ${data_dir}/admin-1:/data/
解析直接报错
-------------------------
我尝试换种写法,可以解析但因为语法问题无法被 docker-compose 读取
version: "3"
x-common-volumes: &common-volumes
- /data1/:/data1/
- /data2/:/data2/
- /etc/resolv.conf:/etc/resolv.conf
services:
nacos:
image: nacos:latest
volumes:
- ${data_dir}/nacos_data:/opt/nacos/data
- *common-volumes
admin:
image: admin:latest
volumes:
- ${data_dir}/admin-1:/data/
- *common-volumes
解析后:
---
version: "3"
x-common-volumes:
- /data1/:/data1/
- /data2/:/data2/
- /etc/resolv.conf:/etc/resolv.conf
services:
nacos:
image: nacos:latest
volumes:
- ${data_dir}/nacos_data:/opt/nacos/data
- - /data1/:/data1/
- /data2/:/data2/
- /etc/resolv.conf:/etc/resolv.conf
admin:
image: admin:latest
volumes:
- ${data_dir}/admin-1:/data/
- - /data1/:/data1/
- /data2/:/data2/
- /etc/resolv.conf:/etc/resolv.conf
yaml 语法检查网站:
https://www.yamllint.com/
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/953030
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.