# =================== # Buckets Development Services # =================== # Port allocation: # App: 8100 (frankenphp), 5174 (vite) # DB: 3307 (mysql) # Mailhog: 8026 (web), 1026 (smtp) services: app: build: context: ../.. dockerfile: Dockerfile.dev container_name: buckets_dev_app restart: unless-stopped ports: - "8100:8000" - "5174:5173" volumes: - ../..:/app - app_vendor:/app/vendor - app_node_modules:/app/node_modules environment: APP_NAME: "${APP_NAME:-buckets}" APP_ENV: "${APP_ENV:-local}" APP_KEY: "${APP_KEY:-base64:YOUR_KEY_HERE}" APP_DEBUG: "${APP_DEBUG:-true}" APP_URL: "${APP_URL:-http://localhost:8100}" DB_CONNECTION: mysql DB_HOST: db DB_PORT: 3306 DB_DATABASE: "${DB_DATABASE:-buckets}" DB_USERNAME: "${DB_USERNAME:-buckets}" DB_PASSWORD: "${DB_PASSWORD:-buckets}" SESSION_DRIVER: "${SESSION_DRIVER:-file}" CACHE_DRIVER: "${CACHE_DRIVER:-file}" QUEUE_CONNECTION: "${QUEUE_CONNECTION:-sync}" MAIL_MAILER: "${MAIL_MAILER:-log}" depends_on: db: condition: service_healthy networks: - buckets-network db: image: mariadb:11 container_name: buckets_dev_db hostname: db restart: unless-stopped ports: - "3307:3306" environment: MYSQL_DATABASE: "${DB_DATABASE:-buckets}" MYSQL_USER: "${DB_USERNAME:-buckets}" MYSQL_PASSWORD: "${DB_PASSWORD:-buckets}" MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD:-root}" volumes: - db_data:/var/lib/mysql - ../../docker/mysql-init:/docker-entrypoint-initdb.d healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 10s timeout: 5s retries: 5 start_period: 30s networks: - buckets-network mailhog: image: mailhog/mailhog container_name: buckets_dev_mailhog restart: unless-stopped ports: - "1026:1025" - "8026:8025" networks: - buckets-network networks: buckets-network: driver: bridge volumes: db_data: app_vendor: app_node_modules: