version: '3' services: # mysql geekai-mysql: image: registry.cn-shenzhen.aliyuncs.com/geekmaster/mysql:8.0.33 container_name: geekai-mysql command: --default-authentication-plugin=mysql_native_password restart: always environment: - MYSQL_ROOT_PASSWORD=mhSCk0NheGhmtsha ports: - '3307:3306' volumes: - ./conf/mysql/my.cnf:/etc/mysql/my.cnf - ./data/mysql/data:/var/lib/mysql - ./logs/mysql:/var/log/mysql - ./data/mysql/init.d:/docker-entrypoint-initdb.d/ healthcheck: test: ['CMD', 'mysqladmin', 'ping', '-h', 'localhost'] interval: 5s timeout: 10s retries: 10 # redis geekai-redis: image: registry.cn-shenzhen.aliyuncs.com/geekmaster/redis:6.0.6 restart: always container_name: geekai-redis command: redis-server --requirepass mhSCk0NheGhmtsha volumes: - ./data/redis:/data ports: - '6380:6379' healthcheck: test: ['CMD', 'redis-cli', 'ping'] interval: 3s timeout: 10s retries: 5 geekai-tika: image: registry.cn-shenzhen.aliyuncs.com/geekmaster/tika:latest container_name: geekai-tika restart: always ports: - '9999:9998' # 后端 API 程序 geekai-api: image: registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-api:v4.2.1-amd64 container_name: geekai-api restart: always depends_on: geekai-mysql: condition: service_healthy geekai-redis: condition: service_healthy environment: - DEBUG=false - LOG_LEVEL=info - CONFIG_FILE=config.toml ports: - '5678:5678' volumes: - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime - ./conf/config.toml:/var/www/app/config.toml - ./logs/app:/var/www/app/logs - ./static:/var/www/app/static - ./data/leveldb:/var/www/app/data # 前端应用 geekai-web: image: registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-web:v4.2.1-amd64 container_name: geekai-web restart: always depends_on: - geekai-api ports: - '8080:8080' volumes: - ./logs/nginx:/var/log/nginx - ./conf/nginx/conf.d:/etc/nginx/conf.d - ./conf/nginx/nginx.conf:/etc/nginx/nginx.conf - ./conf/nginx/ssl:/etc/nginx/ssl