services: opensearch: build: context: ../.. dockerfile: deploy/production/Dockerfile.opensearch restart: unless-stopped environment: discovery.type: single-node bootstrap.memory_lock: "true" DISABLE_SECURITY_PLUGIN: "true" OPENSEARCH_JAVA_OPTS: ${OPENSEARCH_JAVA_OPTS:--Xms2g -Xmx2g} mem_limit: ${OPENSEARCH_MEM_LIMIT:-4g} expose: - "9200" ulimits: memlock: soft: -1 hard: -1 nofile: soft: 65536 hard: 65536 volumes: - opensearch-data:/usr/share/opensearch/data healthcheck: test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:9200/_cluster/health || exit 1"] interval: 30s timeout: 10s retries: 10 backend: build: context: ../.. dockerfile: deploy/production/Dockerfile.backend restart: unless-stopped environment: REVIEW_SECRET: ${REVIEW_SECRET:?set REVIEW_SECRET in .env} command: - python - -m - search.api - --host - 0.0.0.0 - --port - "8080" - --url - http://opensearch:9200 - --index - ${SEARCH_INDEX:-akyldash-fragments-current} - --data - /app/data/minjust-normalized - --reviews-db - /app/data/search-reviews.sqlite3 - --review-secret - ${REVIEW_SECRET} ports: - "127.0.0.1:${BACKEND_PORT:-8080}:8080" depends_on: opensearch: condition: service_healthy volumes: - ${DATA_ROOT:?set DATA_ROOT in .env}:/app/data volumes: opensearch-data: