【发布时间】:2017-12-29 12:47:44
【问题描述】:
在Docker Compose 的yml 文件中,卷在以volumes: 行开头并后跟- host/dir:guest:dir 等模式的部分中声明。该节以下一节的开头结束,其名称不会一直相同,它可以是ports:、environment: 和networks: 等中的任何一个。通常有不止一个 volumes: 部分,并且每个部分中的行数是未知的(并且在 volumes: 部分中不是恒定的)。
我需要从yml 文件的所有volumes: 部分中提取所有卷声明(即- host/dir:guest:dir)。
谢谢!
yml 文件示例:
version: '2'
services:
service1:
image: repo1/image1
volumes:
- /dir1/dir2:/dir3/dir4
- /dir5/dir6:/dir7/dir8
ports:
- "80:80"
service2:
image: repo2/image2
volumes:
- /dir9/dir10:/dir11/dir12
environment:
- A: B
【问题讨论】:
-
用正则表达式解析
yaml,这不是一个好主意。 Python 有一个yaml模块可以使用 -
谢谢@Inian。我需要一个
bash单线解决方案。 -
好吧,如果您觉得正则表达式可以解决这个问题,那么请自己努力质疑......并添加预期的输出以清楚起见......