File size: 2,719 Bytes
738c322
 
 
3079197
738c322
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3079197
738c322
 
 
 
 
 
3079197
738c322
 
 
 
 
 
 
 
 
3079197
738c322
3079197
 
 
738c322
3079197
 
 
 
 
 
 
 
 
738c322
3079197
738c322
3079197
 
738c322
3079197
 
 
 
 
 
738c322
 
3079197
1eb186a
 
3079197
1eb186a
 
 
 
 
 
 
 
 
 
3079197
1eb186a
 
738c322
8887e47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
738c322
 
 
 
 
3079197
738c322
1eb186a
 
738c322
 
3079197
738c322
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
version: '2.2'
services:
  es01:
    container_name: ragflow-es-01
    image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}
    volumes:
      - esdata01:/usr/share/elasticsearch/data
    ports:
      - ${ES_PORT}:9200
    environment:
      - node.name=es01
      - cluster.name=${CLUSTER_NAME}
      - cluster.initial_master_nodes=es01
      - ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
      - bootstrap.memory_lock=false
      - xpack.security.enabled=false
    mem_limit: ${MEM_LIMIT}
    ulimits:
      memlock:
        soft: -1
        hard: -1
    networks:
      - ragflow
    restart: always

  kibana:
    depends_on: 
      - es01
    image: docker.elastic.co/kibana/kibana:${STACK_VERSION}
    container_name: ragflow-kibana
    volumes:
      - kibanadata:/usr/share/kibana/data
    ports:
      - ${KIBANA_PORT}:5601
    environment:
      - SERVERNAME=kibana
      - ELASTICSEARCH_HOSTS=http://es01:9200
    mem_limit: ${MEM_LIMIT}
    networks:
      - ragflow

  mysql:
    image: mysql:5.7.18
    container_name: ragflow-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD}
      - TZ="Asia/Shanghai"
    command:
      --max_connections=1000
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --default-authentication-plugin=mysql_native_password
      --tls_version="TLSv1.2,TLSv1.3"
      --init-file /data/application/init.sql
    ports:
      - ${MYSQL_PORT}:3306
    volumes:
      - mysql_data:/var/lib/mysql
      - ./init.sql:/data/application/init.sql
    networks:
      - ragflow
    healthcheck:
          test: [ "CMD-SHELL", "curl --silent localhost:3306 >/dev/null || exit 1" ]
          interval: 10s
          timeout: 10s
          retries: 3
    restart: always


  minio:
    image: quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z
    container_name: ragflow-minio
    command: server --console-address ":9001" /data
    ports:
      - 9000:9000
      - 9001:9001
    environment:
      - MINIO_ROOT_USER=${MINIO_USER}
      - MINIO_ROOT_PASSWORD=${MINIO_PASSWORD}
    volumes:
      - minio_data:/data
    networks:
      - ragflow
    restart: always


  ragflow:
    depends_on:
      - es01
      - mysql
      - minio
    image: infiniflow/ragflow:v1.0
    container_name: ragflow-server
    ports:
      - ${SVR_HTTP_PORT}:9380
    volumes:
      - ./service_conf.yaml:/ragflow/conf/service_conf.yaml
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./ragflow-logs:/ragflow/logs
    networks:
      - ragflow
    restart: always


volumes:
  esdata01:
    driver: local
  kibanadata:
    driver: local
  mysql_data:
    driver: local
  minio_data:
    driver: local

networks:
  ragflow:
    driver: bridge