version: '3.8' services: frontend: build: context: ./frontend dockerfile: Dockerfile ports: - "3000:3000" environment: - REACT_APP_API_URL=http://localhost:5000 volumes: - ./frontend:/app - /app/node_modules depends_on: - backend backend: build: context: ./backend dockerfile: Dockerfile ports: - "5000:5000" environment: - NODE_ENV=development - DATABASE_URL=postgresql://turftracker:password123@db:5432/turftracker - JWT_SECRET=your-super-secret-jwt-key - GOOGLE_CLIENT_ID=your-google-client-id - GOOGLE_CLIENT_SECRET=your-google-client-secret - WEATHER_API_KEY=your-weather-api-key volumes: - ./backend:/app - /app/node_modules depends_on: - db db: image: postgres:15-alpine environment: - POSTGRES_USER=turftracker - POSTGRES_PASSWORD=password123 - POSTGRES_DB=turftracker ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data - ./database/init.sql:/docker-entrypoint-initdb.d/init.sql nginx: image: nginx:alpine ports: - "80:80" volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf depends_on: - frontend - backend volumes: postgres_data: