# ponytail: dev-server images (not multi-stage prod builds) — this is a demo.
# `docker compose up` → app at http://localhost:4200, Swagger at http://localhost:5000/swagger
services:
  api:
    image: mcr.microsoft.com/dotnet/sdk:10.0
    working_dir: /src
    command: dotnet run --project src/BigRegister.Api --urls http://+:5000
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    volumes:
      # ':z' relabels for SELinux (Fedora/RHEL); harmless on other hosts.
      - ./backend:/src:z
      - api-bin:/src/src/BigRegister.Api/bin
      - api-obj:/src/src/BigRegister.Api/obj
    ports:
      - "5000:5000"

  web:
    image: node:24
    working_dir: /app
    # Uses the committed generated client (no codegen at startup); proxies /api → api container.
    command: sh -c "npm ci && npx ng serve --host 0.0.0.0 --proxy-config proxy.conf.docker.json"
    volumes:
      - ./:/app:z
      - web-modules:/app/node_modules
    ports:
      - "4200:4200"
    depends_on:
      - api

volumes:
  api-bin:
  api-obj:
  web-modules:
