services: app: build: context: . dockerfile: Dockerfile container_name: tabeley_app restart: unless-stopped env_file: - .env environment: APP_ENV: production APP_DEBUG: "false" APP_URL: ${APP_URL:-http://127.0.0.1:8000} DB_CONNECTION: mysql DB_HOST: db DB_PORT: 3306 DB_DATABASE: ${DB_DATABASE:-tabeley_db} DB_USERNAME: ${DB_USERNAME:-root} DB_PASSWORD: ${DB_PASSWORD:-secret} RUN_MIGRATIONS: "true" depends_on: - db volumes: - storage_data:/var/www/html/storage nginx: image: nginx:1.27-alpine container_name: tabeley_nginx restart: unless-stopped depends_on: - app ports: - "8000:80" volumes: - ./public:/var/www/html/public:ro - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro db: image: mysql:8.4 container_name: tabeley_db restart: unless-stopped environment: MYSQL_DATABASE: ${DB_DATABASE:-tabeley_db} MYSQL_ROOT_PASSWORD: ${DB_PASSWORD:-secret} command: --default-authentication-plugin=mysql_native_password ports: - "3307:3306" volumes: - db_data:/var/lib/mysql volumes: db_data: storage_data: