fix: 服务发现排除前端已注册的自定义服务
- API 新增 exclude_ports 查询参数,接受逗号分隔端口列表 - 前端 scanServices() 读取 localStorage 自定义服务端口传给后端 - 已添加的服务不再出现在扫描结果中
This commit is contained in:
@@ -8,7 +8,7 @@ import os
|
||||
import re
|
||||
import json
|
||||
import subprocess
|
||||
from flask import jsonify
|
||||
from flask import jsonify, request
|
||||
from utils import log_message
|
||||
from config import PROJECTS_FILE
|
||||
|
||||
@@ -165,7 +165,7 @@ def register_discovery_routes(app):
|
||||
@app.route('/api/discovery/services')
|
||||
def api_discovery_services():
|
||||
"""扫描本机未注册的新服务"""
|
||||
# 1. 获取已知端口
|
||||
# 1. 收集已知端口
|
||||
known_ports = set()
|
||||
try:
|
||||
with open(PROJECTS_FILE, 'r', encoding='utf-8') as f:
|
||||
@@ -179,7 +179,16 @@ def register_discovery_routes(app):
|
||||
except:
|
||||
pass
|
||||
|
||||
# 2. 获取 Docker 容器端口
|
||||
# 2. 前端传入的额外排除端口(自定义服务等)
|
||||
exclude_str = request.args.get('exclude_ports', '')
|
||||
if exclude_str:
|
||||
try:
|
||||
for p in exclude_str.split(','):
|
||||
known_ports.add(int(p.strip()))
|
||||
except:
|
||||
pass
|
||||
|
||||
# 3. 获取 Docker 容器端口
|
||||
try:
|
||||
result = subprocess.run(
|
||||
['docker', 'ps', '--format', '{{.Ports}}'],
|
||||
|
||||
Reference in New Issue
Block a user