version: "3" services: php: restart: unless-stopped build: context: . target: development dockerfile: Dockerfile command: ["php", "artisan", "octane:start", "--server=swoole", "--host=0.0.0.0"] ports: - "8000:8000" depends_on: - mysql environment: - PHP_OPCACHE_ENABLE=1 - AUTORUN_ENABLED=false - SSL_MODE=mixed - DB_HOST=mysql - DB_PORT=3306 - DB_DATABASE=homestead - DB_USERNAME=homestead - DB_PASSWORD=secret - REDIS_HOST=redis - REDIS_PORT=6379 - REDIS_PASSWORD=password volumes: - .:/var/www/html env_file: - .env mysql: hostname: mysql restart: unless-stopped image: mysql:8.0.37-bookworm ports: - "3306:3306" environment: MYSQL_DATABASE: 'homestead' MYSQL_USER: 'homestead' MYSQL_PASSWORD: 'secret' MYSQL_ROOT_PASSWORD: 'secret' volumes: - database:/var/lib/mysql node: image: node:20 volumes: - .:/var/www/html working_dir: /var/www/html vite: image: node:20 volumes: - .:/var/www/html working_dir: /var/www/html command: ["npm", "run", "dev"] ports: - "5173:5173" ## Container for test using image for Production prod: restart: unless-stopped build: context: . target: production dockerfile: Dockerfile ports: - "8001:8000" depends_on: - mysql environment: - PHP_OPCACHE_ENABLE=1 - AUTORUN_ENABLED=false - SSL_MODE=mixed - DB_HOST=mysql - DB_PORT=3306 - DB_DATABASE=homestead - DB_USERNAME=homestead - DB_PASSWORD=secret - REDIS_HOST=redis - REDIS_PORT=6379 - REDIS_PASSWORD=password env_file: - .env volumes: database: