version: '3'
services:
  # mysql
  chatgpt-plus-mysql:
    image: mysql:8.0.33
    container_name: chatgpt-plus-mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=12345678
    ports:
      - "3307:3306"
    volumes :
      - ./mysql/conf/my.cnf:/etc/mysql/my.cnf
      - ./mysql/data:/var/lib/mysql
      - ./mysql/logs:/var/log/mysql
      - ./mysql/init.d:/docker-entrypoint-initdb.d/
  
  # redis 
  chatgpt-plus-redis:
    image: redis:6.0.16
    restart: always 
    container_name: chatgpt-plus-redis
    command: redis-server --requirepass 12345678
    volumes :
      - ./redis/data:/data
    ports:
      - "6380:6379"

  # 后端 API 程序
  chatgpt-plus-api:
    image: registry.cn-shenzhen.aliyuncs.com/geekmaster/chatgpt-plus-api:v3.1.8.1
    container_name: chatgpt-plus-api
    restart: always
    depends_on:
      - chatgpt-plus-mysql
      - chatgpt-plus-redis
    environment:
      - DEBUG=false
      - LOG_LEVEL=info
      - CONFIG_FILE=config.toml
    ports:
      - "5678:5678"
      - "9999:9999"
    volumes:
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
      - ./conf/config.toml:/var/www/app/config.toml
      - ./logs:/var/www/app/logs
      - ./static:/var/www/app/static

  # 前端应用
  chatgpt-plus-web:
    image: registry.cn-shenzhen.aliyuncs.com/geekmaster/chatgpt-plus-web:v3.1.8.1
    container_name: chatgpt-plus-web
    restart: always
    depends_on:
      - chatgpt-plus-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
      - ./ssl:/etc/nginx/ssl

