009 add docker compose
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
from pathlib import Path
|
||||
|
||||
import yaml
|
||||
|
||||
|
||||
PROJECT_ROOT = Path(__file__).resolve().parents[2]
|
||||
COMPOSE_FILE = PROJECT_ROOT / "docker-compose.yml"
|
||||
INFRA_README = PROJECT_ROOT / "infra" / "README.md"
|
||||
|
||||
|
||||
def _load_compose() -> dict:
|
||||
content = yaml.safe_load(COMPOSE_FILE.read_text(encoding="utf-8"))
|
||||
assert isinstance(content, dict)
|
||||
return content
|
||||
|
||||
|
||||
def test_compose_defines_required_services() -> None:
|
||||
compose = _load_compose()
|
||||
services = compose.get("services")
|
||||
assert isinstance(services, dict)
|
||||
assert {"app", "redis", "signoz"}.issubset(services.keys())
|
||||
|
||||
|
||||
def test_app_service_contains_cache_and_observability_wiring() -> None:
|
||||
compose = _load_compose()
|
||||
app_service = compose["services"]["app"]
|
||||
|
||||
build_config = app_service.get("build")
|
||||
assert isinstance(build_config, dict)
|
||||
assert build_config["context"] == "."
|
||||
assert build_config["dockerfile"] == "Dockerfile"
|
||||
|
||||
environment = app_service.get("environment")
|
||||
assert isinstance(environment, dict)
|
||||
assert environment["G2S_REPOSITORY__REDIS_DSN"] == "redis://redis:6379/0"
|
||||
assert environment["G2S_OBSERVABILITY__OTLP_ENDPOINT"] == "http://signoz:4317"
|
||||
assert environment["G2S_CONFIG_FILE"] == "/app/config.yaml"
|
||||
|
||||
depends_on = app_service.get("depends_on")
|
||||
assert isinstance(depends_on, list)
|
||||
assert "redis" in depends_on
|
||||
assert "signoz" in depends_on
|
||||
|
||||
|
||||
def test_smoke_command_sequence_is_documented() -> None:
|
||||
readme = INFRA_README.read_text(encoding="utf-8")
|
||||
|
||||
assert "docker compose config" in readme
|
||||
assert "docker compose up -d redis signoz" in readme
|
||||
assert "docker compose ps" in readme
|
||||
Reference in New Issue
Block a user