version: "3.9" services: api: build: context: ../backend dockerfile: Dockerfile container_name: platform-api command: npm run start:dev env_file: - ../.env.api ports: - "3000:3000" volumes: - ../backend:/usr/src/app - /usr/src/app/node_modules depends_on: - db - redis networks: - platform-network web: build: context: ../frontend dockerfile: Dockerfile container_name: platform-web command: npm run dev -- --host 0.0.0.0 --port 3001 env_file: - ../.env.web ports: - "3001:3001" volumes: - ../frontend:/usr/src/app - /usr/src/app/node_modules depends_on: - api networks: - platform-network db: image: percona/percona-server:8.0 container_name: platform-db restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: platform MYSQL_USER: platform MYSQL_PASSWORD: platform ports: - "3306:3306" volumes: - percona-data:/var/lib/mysql networks: - platform-network redis: image: redis:7 container_name: platform-redis restart: unless-stopped command: ["redis-server", "--appendonly", "yes"] ports: - "6379:6379" volumes: - redis-data:/data networks: - platform-network volumes: percona-data: redis-data: networks: platform-network: driver: bridge