|
services: |
|
es01: |
|
container_name: ragflow-es-01 |
|
profiles: |
|
- elasticsearch |
|
image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION} |
|
volumes: |
|
- esdata01:/usr/share/elasticsearch/data |
|
ports: |
|
- ${ES_PORT}:9200 |
|
env_file: .env |
|
environment: |
|
- node.name=es01 |
|
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD} |
|
- bootstrap.memory_lock=false |
|
- discovery.type=single-node |
|
- xpack.security.enabled=true |
|
- xpack.security.http.ssl.enabled=false |
|
- xpack.security.transport.ssl.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: on-failure |
|
|
|
infinity: |
|
container_name: ragflow-infinity |
|
profiles: |
|
- infinity |
|
image: infiniflow/infinity:v0.5.0-dev2 |
|
volumes: |
|
- infinity_data:/var/infinity |
|
ports: |
|
- ${INFINITY_THRIFT_PORT}:23817 |
|
- ${INFINITY_HTTP_PORT}:23820 |
|
- ${INFINITY_PSQL_PORT}:5432 |
|
env_file: .env |
|
environment: |
|
- TZ=${TIMEZONE} |
|
mem_limit: ${MEM_LIMIT} |
|
ulimits: |
|
nofile: |
|
soft: 500000 |
|
hard: 500000 |
|
networks: |
|
- ragflow |
|
healthcheck: |
|
test: ["CMD", "curl", "http://localhost:23820/admin/node/current"] |
|
interval: 10s |
|
timeout: 10s |
|
retries: 120 |
|
restart: on-failure |
|
|
|
|
|
mysql: |
|
|
|
image: mysql:8.0.39 |
|
container_name: ragflow-mysql |
|
env_file: .env |
|
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: on-failure |
|
|
|
minio: |
|
image: quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z |
|
container_name: ragflow-minio |
|
command: server --console-address ":9001" /data |
|
ports: |
|
- ${MINIO_PORT}:9000 |
|
- ${MINIO_CONSOLE_PORT}:9001 |
|
env_file: .env |
|
environment: |
|
- MINIO_ROOT_USER=${MINIO_USER} |
|
- MINIO_ROOT_PASSWORD=${MINIO_PASSWORD} |
|
- TZ=${TIMEZONE} |
|
volumes: |
|
- minio_data:/data |
|
networks: |
|
- ragflow |
|
restart: on-failure |
|
|
|
redis: |
|
image: valkey/valkey:8 |
|
container_name: ragflow-redis |
|
command: redis-server --requirepass ${REDIS_PASSWORD} --maxmemory 128mb --maxmemory-policy allkeys-lru |
|
env_file: .env |
|
ports: |
|
- ${REDIS_PORT}:6379 |
|
volumes: |
|
- redis_data:/data |
|
networks: |
|
- ragflow |
|
restart: on-failure |
|
|
|
|
|
|
|
volumes: |
|
esdata01: |
|
driver: local |
|
infinity_data: |
|
driver: local |
|
mysql_data: |
|
driver: local |
|
minio_data: |
|
driver: local |
|
redis_data: |
|
driver: local |
|
|
|
networks: |
|
ragflow: |
|
driver: bridge |
|
|