diff --git a/docker/docker-compose-dev-essentials.yaml b/docker/docker-compose-dev-essentials.yaml index 5388623072..15e4f91ce7 100644 --- a/docker/docker-compose-dev-essentials.yaml +++ b/docker/docker-compose-dev-essentials.yaml @@ -158,3 +158,9 @@ volumes: redis_data: prompt_studio_data: rabbitmq_data: + +networks: + default: + # Match docker-compose.yaml so standalone `up` uses unstract-network, not + # docker_default. Traefik is configured with --providers.docker.network below. + name: unstract-network diff --git a/workers/tests/test_dev_essentials_compose_network.py b/workers/tests/test_dev_essentials_compose_network.py new file mode 100644 index 0000000000..1662f569fb --- /dev/null +++ b/workers/tests/test_dev_essentials_compose_network.py @@ -0,0 +1,30 @@ +"""Guard: dev essentials compose must declare unstract-network when run alone.""" + +from __future__ import annotations + +from pathlib import Path + +import pytest + +yaml = pytest.importorskip("yaml") + +REPO_ROOT = Path(__file__).resolve().parents[2] +ESSENTIALS_COMPOSE = REPO_ROOT / "docker" / "docker-compose-dev-essentials.yaml" +EXPECTED_NETWORK = "unstract-network" + + +def test_dev_essentials_compose_declares_unstract_network(): + doc = yaml.safe_load(ESSENTIALS_COMPOSE.read_text()) + networks = doc.get("networks") or {} + default = networks.get("default") or {} + assert default.get("name") == EXPECTED_NETWORK + + +def test_dev_essentials_traefik_targets_unstract_network(): + doc = yaml.safe_load(ESSENTIALS_COMPOSE.read_text()) + command = doc["services"]["reverse-proxy"]["command"] + if isinstance(command, list): + joined = " ".join(command) + else: + joined = str(command) + assert f"--providers.docker.network={EXPECTED_NETWORK}" in joined