在上一篇博文 同一個docker鏡像,如何拉起多個docker container? 中,涉及到要在docker-compose中構造200個文本片段的場景。
可以使用如下腳本:
#!/usr/bin/env python
f = open("out.txt", "w")
longTxt1 = """
version: '1'
services:
"""
longTxt2 = """
image: million12/zabbix-agent
"""
longTxt3 = """
restart: always
network_mode: "bridge"
ports:
"""
longTxt4 = """
volumes:
- ./zabbix-agentd.conf:/etc/zabbix-agent/zabbix_agentd.conf:ro
- /proc:/data/proc
- /sys:/data/sys
- /dev:/data/dev
- /var/run/docker.sock:/var/run/docker.sock
environment:
- ZABBIX_SERVER=10.1.1.1
- CONFIG_FILE=/etc/zabbix-agent/zabbix_agentd.conf
"""
f.write(longTxt1)
for i in range(200):
f.write(" zabbix-agent" + str(i) + ":")
f.write(longTxt2)
f.write(" container_name: zabbix-agent" + str(i).zfill(3))
f.write(longTxt3)
f.write(" - \"8" + str(i).zfill(3) + ":10050\"")
f.write(longTxt4)
f.write(" - HOST_METADATA=vir" + str(i).zfill(3) + "_sysquery" + "\n")
f.write(" - HOSTNAME=vir" + str(i).zfill(3))
f.write("\n\n\n\n")
f.close()
在python腳本中涉及到多段較長的文本處理時,也可以參考以上longTxt的方法