version: '3.8' services: mysql: image: mysql:8.0 container_name: developer-mysql restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: root123456 MYSQL_DATABASE: developer_platform MYSQL_USER: developer MYSQL_PASSWORD: developer123 ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql - ./database/schema.sql:/docker-entrypoint-initdb.d/01-schema.sql - ./database/seeds.sql:/docker-entrypoint-initdb.d/02-seeds.sql networks: - developer-network redis: image: redis:7.0-alpine container_name: developer-redis restart: unless-stopped ports: - "6379:6379" volumes: - redis_data:/data networks: - developer-network backend: build: context: ./backend dockerfile: Dockerfile container_name: developer-backend restart: unless-stopped environment: - APP_ENV=production - DATABASE_HOST=mysql - DATABASE_PORT=3306 - DATABASE_NAME=developer_platform - DATABASE_USERNAME=developer - DATABASE_PASSWORD=developer123 - REDIS_HOST=redis - REDIS_PORT=6379 ports: - "8080:8080" depends_on: - mysql - redis networks: - developer-network frontend: build: context: ./frontend dockerfile: Dockerfile container_name: developer-frontend restart: unless-stopped ports: - "80:80" depends_on: - backend networks: - developer-network volumes: mysql_data: redis_data: networks: developer-network: driver: bridge