services: backend: build: context: . dockerfile: php/Dockerfile working_dir: /var/www/html volumes: - ../backend:/var/www/html command: php artisan serve --host=0.0.0.0 --port=8000 environment: APP_ENV: local DB_HOST: mysql DB_DATABASE: mandantcrm DB_USERNAME: mandantcrm DB_PASSWORD: secret depends_on: mysql: condition: service_healthy networks: - mandant frontend: image: node:20-alpine working_dir: /app volumes: - ../frontend:/app command: sh -c "npm install && npm run dev" environment: - HOST=0.0.0.0 networks: - mandant nginx: image: nginx:alpine ports: - "80:80" volumes: - ./nginx/default.conf:/etc/nginx/conf.d/default.conf depends_on: - backend - frontend networks: - mandant mysql: image: mysql:8.0 environment: MYSQL_DATABASE: mandantcrm MYSQL_USER: mandantcrm MYSQL_PASSWORD: secret MYSQL_ROOT_PASSWORD: rootsecret volumes: - mysql_data:/var/lib/mysql ports: - "3306:3306" healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "mandantcrm", "-psecret"] interval: 5s timeout: 5s retries: 10 networks: - mandant volumes: mysql_data: networks: mandant: driver: bridge