68 lines
1.7 KiB
YAML
Executable File
68 lines
1.7 KiB
YAML
Executable File
version: '3.8'
|
|
|
|
services:
|
|
# 1. OpenSearch: Vector & Full-text Search Engine
|
|
opensearch:
|
|
image: opensearchproject/opensearch:2.11.1
|
|
container_name: poc_opensearch
|
|
environment:
|
|
- discovery.type=single-node
|
|
- OPENSEARCH_INITIAL_ADMIN_PASSWORD=Admin123!@#
|
|
- bootstrap.memory_lock=true
|
|
- "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
|
|
- DISABLE_SECURITY_PLUGIN=true # Tạm tắt security plugin để dev dễ dàng (không cần HTTPS/certs phức tạp)
|
|
ulimits:
|
|
memlock:
|
|
soft: -1
|
|
hard: -1
|
|
nofile:
|
|
soft: 65536
|
|
hard: 65536
|
|
ports:
|
|
- "9200:9200"
|
|
- "9600:9600"
|
|
volumes:
|
|
- opensearch-data:/usr/share/opensearch/data
|
|
networks:
|
|
- poc_network
|
|
|
|
# 2. OpenSearch Dashboards: Giao diện web quản lý Index (Tùy chọn nhưng rất tiện)
|
|
opensearch-dashboards:
|
|
image: opensearchproject/opensearch-dashboards:2.11.1
|
|
container_name: poc_os_dashboards
|
|
environment:
|
|
- OPENSEARCH_HOSTS=http://opensearch:9200
|
|
- DISABLE_SECURITY_DASHBOARDS_PLUGIN=true
|
|
ports:
|
|
- "5601:5601"
|
|
depends_on:
|
|
- opensearch
|
|
networks:
|
|
- poc_network
|
|
|
|
# 3. Backend App: Ứng dụng Python Ingestion & Search
|
|
backend:
|
|
build: .
|
|
container_name: poc_backend
|
|
volumes:
|
|
- .:/app # Mount source code để sửa code nhận ngay không cần rebuild
|
|
ports:
|
|
- "8000:8000"
|
|
environment:
|
|
- OPENSEARCH_HOST=opensearch
|
|
- OPENSEARCH_PORT=9200
|
|
# Các biến môi trường khác sẽ được mount từ file .env local
|
|
env_file:
|
|
- .env
|
|
depends_on:
|
|
- opensearch
|
|
networks:
|
|
- poc_network
|
|
|
|
volumes:
|
|
opensearch-data:
|
|
|
|
networks:
|
|
poc_network:
|
|
driver: bridge
|