diff --git a/docker-compose.yml b/docker-compose.yml index 8c58caee..adc7bbb5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -112,6 +112,10 @@ services: ports: - "127.0.0.1:8000:8000" restart: unless-stopped + ulimits: + nofile: + soft: 65535 + hard: 65535 user: ${UID:-1000}:${GID:-1000} volumes: - ${POLYWEATHER_RUNTIME_DATA_DIR:-/var/lib/polyweather}:/var/lib/polyweather diff --git a/tests/test_deployment_runtime_config.py b/tests/test_deployment_runtime_config.py index ffb55254..74d9fc80 100644 --- a/tests/test_deployment_runtime_config.py +++ b/tests/test_deployment_runtime_config.py @@ -149,6 +149,19 @@ def test_docker_compose_keeps_polyweather_ports_on_loopback(): assert "\n - 8000:8000" not in compose +def test_web_container_raises_open_file_limit_for_sse_and_proxy_load(): + compose = (ROOT / "docker-compose.yml").read_text(encoding="utf-8") + web_block = compose.split(" polyweather_web:", 1)[1].split( + "\nx-polyweather-base:", + 1, + )[0] + + assert "ulimits:" in web_block + assert "nofile:" in web_block + assert "soft: 65535" in web_block + assert "hard: 65535" in web_block + + def test_city_detail_builds_deb_hourly_consensus_before_peak_window(): source = (ROOT / "web" / "analysis_service.py").read_text(encoding="utf-8")