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

Laravel项目连Elasticsearch遇cURL错误7,如何通过docker-compose解决?

问题

在远程Ubuntu服务器上通过docker-compose启动服务,Laravel项目连接Elasticsearch时出现以下错误:

In CurlFactory.php line 185:
cURL error 7: Failed to connect to elasticsearch port 9200: Connection refused

我的docker-compose.yml配置如下:

version: '3'
services:
  elasticsearch:
      image: my_image_name
      ports:
      - 9200:9200
      networks:
      - overlay
  website:
      image: my_image_name
      ports:
      - 80:80
      links:
      - elasticsearch
      networks:
      - overlay
      environment:
      - ELASTIC_SEARCH_URL=http://elasticsearch:9200
networks:
  overlay:

目前可以通过ip_address:9200访问Elasticsearch,返回信息:

{
  "status": 200,
  "name": "Greer Grant",
  "cluster_name": "elasticsearch",
  "version": {
    "number": "1.7.5",
    "build_hash": "00f95f4ffca6de89d68b7ccaf80d148f1f70e4d4",
    "build_timestamp": "2016-02-02T09:55:30Z",
    "build_snapshot": false,
    "lucene_version": "4.10.4"
  },
  "tagline": "You Know, for Search"
}

有方案提到需要修改elasticsearch.yml中的network.host为0.0.0.0,但我使用的是自定义预构建Elasticsearch镜像,无法修改该文件,请问能否通过docker-compose.yml覆盖此配置?

解决方案

可以通过docker-compose.yml直接覆盖Elasticsearch的network.host配置,针对你的Elasticsearch 1.7.5版本,提供两种有效实现方式:

方式一:环境变量传递

Elasticsearch支持将配置项转为环境变量(格式为ES_<配置路径>,层级用下划线分隔),network.host对应的环境变量是ES_NETWORK_HOST。修改elasticsearch服务配置:

elasticsearch:
    image: my_image_name
    ports:
    - 9200:9200
    networks:
    - overlay
    environment:
    - ES_NETWORK_HOST=0.0.0.0

方式二:命令行参数指定

在docker-compose.yml中通过command字段,为Elasticsearch启动命令添加配置参数:

elasticsearch:
    image: my_image_name
    ports:
    - 9200:9200
    networks:
    - overlay
    command: elasticsearch --network.host 0.0.0.0

验证配置生效

重启服务:

docker-compose down && docker-compose up -d

进入website容器测试连通性:

docker-compose exec website curl http://elasticsearch:9200

若返回Elasticsearch状态信息,说明配置生效,Laravel项目即可正常连接。

内容的提问来源于stack exchange,提问作者Tu Le Thanh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:09:27