Xxuwei95fix
160c9cf1创建于 2月9日历史提交
version: "3"  # docker-compose版本
services:
  # nginx
  web:
    image: "ezdata123/ezdata-web:latest"     # 镜像名称
    container_name: ezdata_web     # 容器名字
    restart: always     # 开机自动重启
    ports:
      - "80:80"
    volumes: # 目录映射(宿主机:容器内)
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/_app.config.js:/usr/share/nginx/html/dist/_app.config.js
    command: ["nginx", "-g", "daemon off;"]
    networks:
      ezdata:
        ipv4_address: 10.233.31.0
  master:
    image: "ezdata123/ezdata:latest"  # docker镜像名及版本
    container_name: ezdata_master  # 服务容器
    volumes: # 挂载目录
      - ./deploy.env:/opt/ezdata/api/deploy.env
    environment: # 配置环境变量
      - TZ=Asia/Shanghai  # 设置时区
      - read_env=1 # 是否读取配置文件
      - ENV=deploy.env # 配置文件
      - run_upgrade=1 # 是否自动升级依赖
      - upgrade_packages=akshare,ccxt
      - run_web=1 # 是否运行web api
      - web_worker=4 # web api 并发数
      - run_scheduler=0 # 是否运行scheduler api
      - run_flower=0 # 是否运行celery flower监控
      - run_worker=1 # 是否运行celery worker
      - run_sandbox=0 # 是否运行sandbox
      - sandbox_worker=4 # sandbox 并发数
      - worker_concurrency=4 # celery worker 并发数
      - worker_queue=default # celery worker 订阅队列
      - worker_process=prefork # celery worker 运行模式
    working_dir: /opt/ezdata/api
    ports:
      - 8001:8001 # web服务端口
    command: /bin/bash -c "bash init.sh"
    privileged: true
    restart: always
    stdin_open: true
    tty: true
    networks:
      ezdata:
        ipv4_address: 10.233.31.1
    depends_on:
      - mysql
      - redis
      - minio
      - elasticsearch
  scheduler: # docker-compose编排名称,一般同微服务名称,注意不要与其>他服务重名
    image: "ezdata123/ezdata:latest"  # docker镜像名及版本
    container_name: ezdata_scheduler  # 服务容器
    volumes: # 挂载目录
      - ./deploy.env:/opt/ezdata/api/deploy.env
    environment: # 配置环境变量
      - TZ=Asia/Shanghai  # 设置时区
      - read_env=1 # 是否读取配置文件
      - ENV=deploy.env # 配置文件
      - run_upgrade=1 # 是否自动升级依赖
      - upgrade_packages=akshare,ccxt
      - run_web=0 # 是否运行web api
      - web_worker=4 # web api 并发数
      - run_scheduler=1 # 是否运行scheduler api
      - run_flower=1 # 是否运行celery flower监控
      - run_worker=0 # 是否运行celery worker
      - run_sandbox=0 # 是否运行sandbox
      - sandbox_worker=4 # sandbox 并发数
      - worker_concurrency=4 # celery worker 并发数
      - worker_queue=default # celery worker 订阅队列
      - worker_process=prefork # celery worker 运行模式
    working_dir: /opt/ezdata/api
    ports:
      - 8002:8002 # 任务调度端口
      - 5555:5555 # flower监控端口,不开启可注释掉
    command: /bin/bash -c "bash init.sh"
    privileged: true
    restart: always
    stdin_open: true
    tty: true
    networks:
      ezdata:
        ipv4_address: 10.233.31.2
    depends_on:
      - mysql
      - redis
      - minio
      - elasticsearch
  # 数据库
  mysql:
    image: amd64/mysql:8.0.22
    container_name: mysql
    restart: always
    command: [
        '--default-authentication-plugin=mysql_native_password',
        '--character-set-server=utf8mb4',
        '--collation-server=utf8mb4_unicode_ci',
        '--log-bin=mysql-bin'
    ]
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: ezdata123
    volumes:
      - ./mysql:/var/lib/mysql
    networks:
      ezdata:
        ipv4_address: 10.233.31.3
  redis:
    image: redis:6.0.9
    container_name: redis
    restart: always
    ports:
      - "6379:6379"
    command:
      # 设置 redis 密码
      redis-server --requirepass ezdata123 --appendonly yes
    networks:
      ezdata:
        ipv4_address: 10.233.31.4
  # 对象存储
  minio:
    image: minio/minio
    volumes:
      - ./minio:/data # 持久化地址
    ports:
      - "9000:9000"
      - "19001:19001"
    container_name: minio
    restart: always
    environment:
      MINIO_ROOT_USER: minio # 账号
      MINIO_ROOT_PASSWORD: ezdata123 #密码
      MINIO_PROMETHEUS_AUTH_TYPE: public
    command: server /data --console-address :19001
    networks:
      ezdata:
        ipv4_address: 10.233.31.5
  elasticsearch:
    image: elasticsearch:7.17.2
    container_name: elasticsearch
    restart: always
    environment:
      - discovery.type=single-node
      - http.port=9200
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - http.cors.allow-headers=X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
      - http.cors.allow-credentials=false
      - bootstrap.memory_lock=true
      - ES_JAVA_OPTS=-Xms512m -Xmx512m
    ports:
      - '9200:9200'
      - '9300:9300'
    networks:
      ezdata:
        ipv4_address: 10.233.31.6

networks:
  ezdata:
    driver: bridge
    ipam:
      config:
        - subnet: 10.233.0.0/16