# `docker compose up` starts the world this pharmacy's tools talk to. # # There is no agent service here. The agent is a Vapi assistant and Vapi runs it, so the only thing # to stand up locally is the store and the tool server the assistant calls into. name: northwind-pharmacy-agent services: postgres: image: postgres:16 environment: POSTGRES_USER: northwind POSTGRES_PASSWORD: northwind POSTGRES_DB: northwind_demo ports: - "${PG_PORT:-55436}:5432" # non-default host port: avoids clashing volumes: # with other local postgres instances - pgdata:/var/lib/postgresql/data # *.sql in this dir run in filename order on first boot only - ./db/schema.sql:/docker-entrypoint-initdb.d/01-schema.sql:ro - ./db/seed.sql:/docker-entrypoint-initdb.d/02-seed.sql:ro healthcheck: test: ["CMD-SHELL", "pg_isready -U northwind -d northwind_demo"] interval: 3s timeout: 3s retries: 20 tools-api: build: ./tools-api environment: DATABASE_URL: postgresql://northwind:northwind@postgres:5432/northwind_demo ports: - "${TOOLS_PORT:-18094}:8080" depends_on: postgres: condition: service_healthy restart: unless-stopped healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8080/health')"] interval: 5s timeout: 3s retries: 20 volumes: pgdata: