###使用weget下载: wget https://dingpeng.cc/mkconfig.py
###使用curl下载: curl -O https://dingpeng.cc/mkconfig.py
def generate_docker_compose(prefix="fsu", terminal_prefix="jsxnj", count=8, output_file="docker-compose.yml"):
"""
生成Docker Compose配置
Args:
prefix: 服务名称前缀(如:fsu)
terminal_prefix: TERMINAL_ID前缀(如:jsxnj)
count: 生成的服务数量
output_file: 输出文件名
"""
# 基础模板
template = f'''version: '3.8'
networks:
fsunetwork:
driver: bridge
ipam:
config:
- subnet: 172.200.200.0/24
services:
'''
# 为每个服务生成配置,image填写实际需要的镜像的名称
#####注意:image名称中,\斜杠可能会识别成转义字符,可选择使用/斜杠,docker compose都可以识别
for i in range(1, count + 1):
service_name = f"{prefix}{i}"
terminal_id = f"{terminal_prefix}{service_name}"
service_config = f''' {service_name}:
image: fsuclient
restart: no
networks:
- fsunetwork
cap_add:
- NET_ADMIN
devices:
- /dev/ppp
environment:
- TERMINAL_ID={terminal_id}
'''
template += service_config
# 写入文件
with open(output_file, 'w') as f:
f.write(template)
print(f"已生成 {count} 个服务配置到 {output_file}")
print(f"服务名称前缀: {prefix}")
print(f"TERMINAL_ID前缀: {terminal_prefix}")
# 使用示例
if __name__ == "__main__":
# 默认生成8个fsu服务,可用参数如下:
# prefix: 服务名称前缀(如:fsu)
# terminal_prefix: TERMINAL_ID前缀(如:jsxnj)
# count: 生成的服务数量
# output_file: 输出文件名
generate_docker_compose()
# 自定义示例:生成12个fsu服务,TERMINAL_ID前缀不变
# generate_docker_compose(count=12