diff --git a/Makefile b/Makefile index f3d75c07..dd7a8a13 100644 --- a/Makefile +++ b/Makefile @@ -28,7 +28,7 @@ fe: @echo "Building frontend..." @bash $(BUILD_FE_SCRIPT) -server: env setup_es_index +server: env @if [ ! -d "$(STATIC_DIR)" ]; then \ echo "Static directory '$(STATIC_DIR)' not found, building frontend..."; \ $(MAKE) fe; \ diff --git a/docker/docker-compose-debug.yml b/docker/docker-compose-debug.yml index e8aba606..81d901d1 100755 --- a/docker/docker-compose-debug.yml +++ b/docker/docker-compose-debug.yml @@ -200,11 +200,13 @@ services: - ./data/bitnami/elasticsearch:/bitnami/elasticsearch/data - ./volumes/elasticsearch/elasticsearch.yml:/opt/bitnami/elasticsearch/config/my_elasticsearch.yml - ./volumes/elasticsearch/analysis-smartcn.zip:/opt/bitnami/elasticsearch/analysis-smartcn.zip:rw,Z + - ./volumes/elasticsearch/setup_es.sh:/setup_es.sh + - ./volumes/elasticsearch/es_index_schema:/es_index_schemas healthcheck: test: [ 'CMD-SHELL', - 'curl -f http://localhost:9200 && [ -f /tmp/es_plugins_ready ]', + 'curl -f http://localhost:9200 && [ -f /tmp/es_plugins_ready ] && [ -f /tmp/es_init_complete ]', ] interval: 5s timeout: 10s @@ -212,7 +214,7 @@ services: start_period: 10s networks: - coze-network - # Install smartcn analyzer plugin + # Install smartcn analyzer plugin and initialize ES command: > bash -c " /opt/bitnami/scripts/elasticsearch/setup.sh @@ -244,9 +246,27 @@ services: touch /tmp/es_plugins_ready; echo 'Plugin installation successful, marker file created'; + # Start initialization script in background + ( + echo 'Waiting for Elasticsearch to be ready...' + until curl -s -f http://localhost:9200/_cat/health >/dev/null 2>&1; do + echo 'Elasticsearch not ready, waiting...' + sleep 2 + done + echo 'Elasticsearch is ready!' + + # Run ES initialization script + echo 'Running Elasticsearch initialization...' + sed 's/\r$$//' /setup_es.sh > /setup_es_fixed.sh + chmod +x /setup_es_fixed.sh + /setup_es_fixed.sh --index-dir /es_index_schemas + # Create marker file indicating initialization completion + touch /tmp/es_init_complete + echo 'Elasticsearch initialization completed successfully!' + ) & + # Start Elasticsearch exec /opt/bitnami/scripts/elasticsearch/entrypoint.sh /opt/bitnami/scripts/elasticsearch/run.sh - echo -e "⏳ Adjusting Elasticsearch disk watermark settings..." "