关于 yaml 问题,有没有大佬可以解惑

2023-06-30 15:37:44 +08:00
 121812
如何通过 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/
742 次点击
所在节点    程序员
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/953030

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX