version: '3.8' services: mysql: image: mysql:8.0 container_name: knowledge_base_mysql environment: MYSQL_ROOT_PASSWORD: secure_password_change_this_in_production MYSQL_DATABASE: knowledge_base MYSQL_USER: knowledge_user MYSQL_PASSWORD: secure_password_change_this_in_production MYSQL_CHARACTER_SET_SERVER: utf8mb4 MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci volumes: - ./storage/mysql:/var/lib/mysql ports: - "3306:3306" restart: unless-stopped command: --default-authentication-plugin=mysql_native_password --bind-address=0.0.0.0 networks: - app-network redis: image: redis:7-alpine container_name: knowledge_base_redis volumes: - ./storage/redis:/data ports: - "6379:6379" restart: unless-stopped command: redis-server --appendonly yes --bind 0.0.0.0 networks: - app-network meilisearch: image: getmeili/meilisearch:v1.5 container_name: knowledge_base_meilisearch environment: MEILI_MASTER_KEY: your-master-key-change-this-in-production MEILI_ENV: production volumes: - ./storage/meilisearch:/meili_data ports: - "7700:7700" restart: unless-stopped networks: - app-network app: image: knowledge-base-app:latest container_name: knowledge_base_app environment: APP_NAME: "知识库系统" APP_ENV: production APP_KEY: base64:your-app-key-here-change-this-in-production APP_DEBUG: "false" APP_URL: http://192.168.1.33:8000 DB_CONNECTION: mysql DB_HOST: mysql DB_PORT: 3306 DB_DATABASE: knowledge_base DB_USERNAME: knowledge_user DB_PASSWORD: secure_password_change_this_in_production REDIS_HOST: redis REDIS_PORT: 6379 REDIS_PASSWORD: "" CACHE_STORE: redis SESSION_DRIVER: redis QUEUE_CONNECTION: redis SCOUT_DRIVER: meilisearch MEILISEARCH_HOST: http://meilisearch:7700 MEILISEARCH_KEY: your-master-key-change-this-in-production LOG_CHANNEL: stack FILESYSTEM_DISK: local SESSION_DOMAIN: "" SESSION_SECURE: "false" # Swoole/Octane 配置 OCTANE_SERVER: swoole OCTANE_HOST: 0.0.0.0 OCTANE_PORT: 8000 OCTANE_WORKERS: 8 OCTANE_TASK_WORKERS: 4 OCTANE_MAX_REQUESTS: 1000 OCTANE_WATCH: "false" volumes: - ./:/var/www/html - ./storage/app:/var/www/html/storage ports: - "8000:8000" restart: unless-stopped depends_on: - mysql - redis - meilisearch networks: - app-network networks: app-network: driver: bridge