| version: '3.8' | |
| services: | |
| frontend: | |
| build: | |
| context: ./frontend | |
| dockerfile: Dockerfile | |
| ports: | |
| - "3000:3000" | |
| environment: | |
| - NEXT_PUBLIC_API_URL=http://backend:8000 | |
| depends_on: | |
| - backend | |
| networks: | |
| - todo-network | |
| backend: | |
| build: | |
| context: ./backend | |
| dockerfile: Dockerfile | |
| ports: | |
| - "8000:8000" | |
| environment: | |
| - DATABASE_URL=postgresql+asyncpg://postgres:secretpass@db:5432/todo | |
| - DAPR_HTTP_PORT=3500 | |
| depends_on: | |
| - db | |
| - kafka | |
| networks: | |
| - todo-network | |
| db: | |
| image: postgres:15-alpine | |
| environment: | |
| - POSTGRES_USER=postgres | |
| - POSTGRES_PASSWORD=secretpass | |
| - POSTGRES_DB=todo | |
| volumes: | |
| - postgres-data:/var/lib/postgresql/data | |
| networks: | |
| - todo-network | |
| kafka: | |
| image: redpandadata/redpanda:v23.2.10 | |
| command: | |
| - redpanda | |
| - start | |
| - --overprovisioned | |
| - --smp=1 | |
| - --memory=1G | |
| - --reserve-memory=0M | |
| - --node-id=0 | |
| - --kafka-addr=PLAINTEXT://0.0.0.0:9092,OUTSIDE://0.0.0.0:9093 | |
| - --advertise-kafka-addr=PLAINTEXT://kafka:9092,OUTSIDE://localhost:9093 | |
| ports: | |
| - "9092:9092" | |
| - "9093:9093" | |
| networks: | |
| - todo-network | |
| volumes: | |
| postgres-data: | |
| networks: | |
| todo-network: | |
| driver: bridge | |