fix: 服务发现排除前端已注册的自定义服务

- API 新增 exclude_ports 查询参数,接受逗号分隔端口列表
- 前端 scanServices() 读取 localStorage 自定义服务端口传给后端
- 已添加的服务不再出现在扫描结果中
This commit is contained in:
2026-06-01 18:23:23 +08:00
parent 294526b403
commit ebc8d687d0
2 changed files with 18 additions and 4 deletions

View File

@@ -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}}'],