version: '3.4' services: opensearch-node: image: docker.io/opensearchproject/opensearch:2.11.1 container_name: opensearch-node environment: - discovery.type=single-node - bootstrap.memory_lock=true - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx2g" ports: - 9200:9200 - 9300:9300 networks: - rag volumes: - opensearch-data:/usr/share/opensearch/data opensearch-dashboards: image: docker.io/opensearchproject/opensearch-dashboards:2.11.1 container_name: opensearch-dashboards ports: - 5601:5601 expose: - "5601" environment: OPENSEARCH_HOSTS: 'https://opensearch-node:9200' networks: - rag minio: container_name: minio image: docker.io/minio/minio ports: - "9000:9000" - "9001:9001" volumes: - minio_storage:/data - ./init-scripts:/docker-entrypoint-initdb.d environment: MINIO_ROOT_USER: ${S3_ACCESS_KEY} MINIO_ROOT_PASSWORD: ${S3_SECRET_KEY} command: server --console-address ":9001" /data networks: - rag backend: container_name: rag-chat-backend build: context: ./rag-chat-backend dockerfile: Dockerfile image: rag-chat-backend ports: - "8000:8000" environment: - VECTOR_STORE_ENDPOINT=opensearch-node - S3_ENDPOINT=http://minio:9000 env_file: - .env networks: - rag networks: rag: {} volumes: opensearch-data: minio_storage: {}