|
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 |
|
- TZ=${TIMEZONE} |
|
mem_limit: ${MEM_LIMIT} |
|
ulimits: |
|
memlock: |
|
soft: -1 |
|
hard: -1 |
|
healthcheck: |
|
test: ["CMD-SHELL", "curl http://localhost:9200"] |
|
interval: 10s |
|
timeout: 10s |
|
retries: 120 |
|
networks: |
|
- ragflow |
|
restart: always |
|
|
|
kibana: |
|
depends_on: |
|
es01: |
|
condition: service_healthy |
|
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 |
|
- TZ=${TIMEZONE} |
|
mem_limit: ${MEM_LIMIT} |
|
networks: |
|
- ragflow |
|
|
|
mysql: |
|
image: mysql:5.7.18 |
|
container_name: ragflow-mysql |
|
environment: |
|
- MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD} |
|
- TZ=${TIMEZONE} |
|
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", "mysqladmin" ,"ping", "-uroot", "-p${MYSQL_PASSWORD}"] |
|
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} |
|
- TZ=${TIMEZONE} |
|
volumes: |
|
- minio_data:/data |
|
networks: |
|
- ragflow |
|
restart: always |
|
|
|
|
|
ragflow: |
|
depends_on: |
|
mysql: |
|
condition: service_healthy |
|
es01: |
|
condition: service_healthy |
|
image: infiniflow/ragflow:v1.0 |
|
container_name: ragflow-server |
|
ports: |
|
- ${SVR_HTTP_PORT}:9380 |
|
- 80:80 |
|
- 443:443 |
|
volumes: |
|
- ./service_conf.yaml:/ragflow/conf/service_conf.yaml |
|
- ./ragflow-logs:/ragflow/logs |
|
- ./nginx/ragflow.conf:/etc/nginx/conf.d/ragflow.conf |
|
- ./nginx/proxy.conf:/etc/nginx/proxy.conf |
|
- ./nginx/nginx.conf:/etc/nginx/nginx.conf |
|
environment: |
|
- TZ=${TIMEZONE} |
|
networks: |
|
- ragflow |
|
restart: always |
|
|
|
|
|
volumes: |
|
esdata01: |
|
driver: local |
|
kibanadata: |
|
driver: local |
|
mysql_data: |
|
driver: local |
|
minio_data: |
|
driver: local |
|
|
|
networks: |
|
ragflow: |
|
driver: bridge |
|
|