这是我的docker-compose1.yml文件
version: "3"
services:
xxx-service:
#测试0
image: 192.168.0.0/xxx-service:v1.1.0
networks:
eureka-net:
ipv4_address: 192.168.0.0
aliases:
- xxx-service
restart: always
#测试1
hostname: eem-service
#测试2
ports:
#测试3
#6379: 6379
volumes:
# 日志数据
- /var/log/CET/docker/eem-service/logs:/logs
# 拓扑导出导入配置文件
- /etc/CET/docker/config/eem-service/topology-templates:/etc/CET/eem/config/topology
我的python代码
# -*- coding: utf-8 -*-
#!/usr/bin/env python3
from ruamel import yaml
def up_yml():
#读取docker-compose.yml文件
with open('./docker-compose1.yml', 'r+', encoding="utf-8") as f:
content = yaml.load(f, Loader=yaml.RoundTripLoader)
#写入docker-compose.yml文件
with open('./docker-compose2.yml', 'w+', encoding="utf-8") as nf:
yaml.dump(content, nf,Dumper=yaml.RoundTripDumper,default_flow_style=False, allow_unicode=True, indent=2, block_seq_indent=2)
if __name__ == '__main__':
up_yml()
期待的输出
version: "3"
services:
xxx-service:
#测试0
image: 192.168.0.0/xxx-service:v1.1.0
networks:
eureka-net:
ipv4_address: 192.168.0.0
aliases:
- xxx-service
restart: always
#测试1
hostname: xxx-service
#测试2
ports:
#测试3
#6379: 6379
volumes:
# 日志数据
- /var/log/ABC/docker/xxx-service/logs:/logs
# 拓扑导出导入配置文件
- /etc/ABC/docker/config/xxx-service/topology-templates:/etc/ABC/xxx/config/topology
实际的输出
version: "3"
services:
xxx-service:
#测试0
image: 192.168.0.0/xxx-service:v1.1.0
networks:
eureka-net:
ipv4_address: 192.168.0.0
aliases:
- xxx-service
restart: always
hostname: xxx-service
ports:
volumes:
# 日志数据
- /var/log/ABC/docker/eem-service/logs:/logs
# 拓扑导出导入配置文件
- /etc/ABC/docker/config/xxx-service/topology-templates:/etc/ABC/xxx/config/topology
请问这是为什么?除了开头的那个#测试0的注释和vloumes里的注释保留,其他的丢失
我发现image、networks等同一级但是在xxx-service下的注释,仅有xxx-service下紧接着的注释能保留,其他的会丢失
请问有办法解决吗?
相似问题