You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Weaviate Docker容器时extensions-storage报connection refused错如何解决

问题根因

报错是contextionary服务启动时尝试访问Weaviate的扩展存储接口失败,本质是两个服务启动顺序冲突:当前配置没有指定启动依赖,两个服务同时启动,Weaviate初始化耗时更长,contextionary发起连接请求时Weaviate还没完成端口监听,因此触发connection refused报错。

解决方案

方案一:调整docker-compose配置(推荐,一劳永逸)

新增服务健康检查和启动依赖规则,确保contextionary在Weaviate完全就绪后再启动,修改后的完整配置如下:

version: '2'
services:
  weaviate:
    image: semitechnologies/weaviate:1.2.1
    ports:
    - 8080:8080
    restart: on-failure:0
    environment:
      CONTEXTIONARY_URL: contextionary:9999
      QUERY_DEFAULTS_LIMIT: 25
      AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
      PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
      DEFAULT_VECTORIZER_MODULE: 'text2vec-contextionary'
      ENABLE_MODULES: text2vec-contextionary
    # 新增健康检查,检测Weaviate是否就绪
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/v1/.well-known/ready"]
      interval: 5s
      timeout: 5s
      retries: 10
  contextionary:
    environment:
      OCCURRENCE_WEIGHT_LINEAR_FACTOR: 0.75
      EXTENSIONS_STORAGE_MODE: weaviate
      EXTENSIONS_STORAGE_ORIGIN: http://weaviate:8080
      NEIGHBOR_OCCURRENCE_IGNORE_PERCENTILE: 5
      ENABLE_COMPOUND_SPLITTING: 'false'
    image: semitechnologies/contextionary:en0.16.0-v1.0.2
    # 新增启动依赖,等待Weaviate健康检查通过后再启动
    depends_on:
      weaviate:
        condition: service_healthy

修改配置后重新执行docker-compose up -d即可。

方案二:临时手动重启

如果不想修改配置,可以先等待1~2分钟待Weaviate完全启动后,执行以下命令重启contextionary服务即可:

docker restart $(docker ps -q --filter "name=contextionary")

验证方法

服务启动完成后,访问http://localhost:8080/v1/meta,如果能正常返回JSON格式的服务元数据,说明部署正常无报错。

内容的提问来源于stack exchange,提问作者Rizwan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:24:03