From d3f444dbf61a6740101b231dc14f098c14848618 Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Sun, 31 May 2026 19:46:00 +0800 Subject: [PATCH] Bind PolyWeather services to loopback --- docker-compose.yml | 4 ++-- tests/test_deployment_runtime_config.py | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 61180dfd..eb96da65 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -79,7 +79,7 @@ services: timeout: 5s image: ghcr.io/yangyuan-zhen/polyweather-frontend:${IMAGE_TAG:-latest} ports: - - 3001:3000 + - "127.0.0.1:3001:3000" restart: unless-stopped polyweather_web: command: python web/app.py @@ -104,7 +104,7 @@ services: timeout: 5s image: ghcr.io/yangyuan-zhen/polyweather-backend:${IMAGE_TAG:-latest} ports: - - 8000:8000 + - "127.0.0.1:8000:8000" restart: unless-stopped user: ${UID:-1000}:${GID:-1000} volumes: diff --git a/tests/test_deployment_runtime_config.py b/tests/test_deployment_runtime_config.py index f239e015..483d186f 100644 --- a/tests/test_deployment_runtime_config.py +++ b/tests/test_deployment_runtime_config.py @@ -80,6 +80,15 @@ def test_deploy_script_retries_startup_smoke_checks(): assert 'smoke_check "frontend" "https://www.polyweather.top/" 15 3 5' in script +def test_docker_compose_keeps_polyweather_ports_on_loopback(): + compose = (ROOT / "docker-compose.yml").read_text(encoding="utf-8") + + assert "127.0.0.1:3001:3000" in compose + assert "127.0.0.1:8000:8000" in compose + assert "\n - 3001:3000" not in compose + assert "\n - 8000:8000" not in compose + + def test_city_detail_builds_deb_hourly_consensus_before_peak_window(): source = (ROOT / "web" / "analysis_service.py").read_text(encoding="utf-8")