services: benchmark: # Builds from the repo's Dockerfile: # stage 1 (python) runs generate_dashboard.py from data/benchmark_history.json # stage 2 (nginx) serves dashboard.html + pages/ as static build: . image: llm-benchmark:latest container_name: llm-benchmark restart: unless-stopped ports: - "0.0.0.0:8081:80" # bind all interfaces:8081 -> container :80 # Re-tag the image so `docker compose up` after a code change rebuilds it. # (compose detects Dockerfile/context changes and rebuilds automatically.)