services: db: image: postgres:16.1-alpine container_name: db ports: - "5432:5432" environment: - POSTGRES_DB=django-api-frameworks - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres networks: - django-api-frameworks volumes: - database_postgres:/var/lib/postgresql/data healthcheck: test: [ "CMD-SHELL", "pg_isready -U postgres" ] interval: 5s timeout: 5s retries: 5 django: container_name: django build: context: ./django dockerfile: ./Dockerfile ports: - "8001:8000" environment: - DEBUG=False volumes: - ./django:/app command: uv run uvicorn config.asgi:application --host 0.0.0.0 --port 8000 --reload depends_on: - db networks: - django-api-frameworks django-ninja: container_name: django-ninja build: context: . dockerfile: ./django-ninja/Dockerfile ports: - "8002:8000" environment: - DEBUG=False volumes: - ./django-ninja:/app command: uv run uvicorn config.asgi:application --host 0.0.0.0 --port 8000 --reload depends_on: - db networks: - django-api-frameworks django-shinobi: container_name: django-shinobi build: context: . dockerfile: ./django-shinobi/Dockerfile ports: - "8003:8000" environment: - DEBUG=False volumes: - ./django-shinobi:/app command: uv run uvicorn config.asgi:application --host 0.0.0.0 --port 8000 --reload depends_on: - db networks: - django-api-frameworks django-rapid: container_name: django-rapid build: context: . dockerfile: ./django-rapid/Dockerfile ports: - "8004:8000" environment: - DEBUG=False volumes: - ./django-rapid:/app command: uv run uvicorn config.asgi:application --host 0.0.0.0 --port 8000 --reload depends_on: - db networks: - django-api-frameworks django-bolt: container_name: django-bolt build: context: . dockerfile: ./django-bolt/Dockerfile ports: - "8005:8000" environment: - DEBUG=False volumes: - ./django-bolt:/app command: uv run python manage.py runbolt --host 0.0.0.0 --port 8000 depends_on: - db networks: - django-api-frameworks djangorestframework: container_name: djangorestframework build: context: . dockerfile: ./djangorestframework/Dockerfile ports: - "8006:8000" environment: - DEBUG=False volumes: - ./djangorestframework:/app command: uv run uvicorn config.asgi:application --host 0.0.0.0 --port 8000 --reload depends_on: - db networks: - django-api-frameworks djrest2: container_name: djrest2 build: context: . dockerfile: ./djrest2/Dockerfile ports: - "8007:8000" environment: - DEBUG=False volumes: - ./djrest2:/app command: uv run uvicorn config.asgi:application --host 0.0.0.0 --port 8000 --reload depends_on: - db networks: - django-api-frameworks fastapi: container_name: fastapi build: context: . dockerfile: ./fastapi/Dockerfile ports: - "8099:8000" environment: - DEBUG=False volumes: - ./fastapi:/app command: uv run fastapi dev main.py --host 0.0.0.0 --port 8000 depends_on: - db networks: - django-api-frameworks locust: container_name: locust build: context: . dockerfile: ./load-testing/Dockerfile ports: - "8089:8089" volumes: - ./load-testing:/usr/src/app networks: - django-api-frameworks volumes: database_postgres: networks: django-api-frameworks: driver: bridge