services: bytedesk-mysql: image: mysql:latest container_name: mysql-bytedesk environment: MYSQL_DATABASE: bytedesk MYSQL_ROOT_PASSWORD: r8FqfdbWUaN3 ports: - "13306:3306" volumes: - mysql_data:/var/lib/mysql networks: - bytedesk-network bytedesk-redis: image: redis/redis-stack-server:latest container_name: redis-bytedesk ports: - "16379:6379" environment: - REDIS_ARGS=--requirepass qfRxz3tVT8Nh volumes: - redis_data:/data networks: - bytedesk-network healthcheck: test: ["CMD", "redis-cli", "-a", "qfRxz3tVT8Nh", "ping"] interval: 10s timeout: 5s retries: 5 bytedesk-ollama: image: ollama/ollama:latest container_name: ollama-bytedesk ports: - "21434:11434" volumes: - ollama_models:/root/.ollama environment: - OLLAMA_MODELS=qwen3:0.6b networks: - bytedesk-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:11434/api/version"] interval: 30s timeout: 10s retries: 5 # ElasticSearch 向量数据库 bytedesk-elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.18.0 container_name: elasticsearch-bytedesk environment: - node.name=bytedesk-es01 - cluster.name=bytedesk-es-cluster - discovery.type=single-node - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - xpack.security.enabled=true - ELASTIC_PASSWORD=bytedesk123 ulimits: memlock: soft: -1 hard: -1 volumes: - elasticsearch_data:/usr/share/elasticsearch/data ports: - "19200:9200" - "19300:9300" networks: - bytedesk-network healthcheck: test: ["CMD-SHELL", "curl -s -f http://localhost:9200/_cluster/health?wait_for_status=yellow || exit 1"] interval: 30s timeout: 10s retries: 5 volumes: mysql_data: name: bytedesk_mysql_data redis_data: name: bytedesk_redis_data ollama_models: name: bytedesk_ollama_models elasticsearch_data: name: bytedesk_elasticsearch_data networks: bytedesk-network: driver: bridge