【发布时间】:2018-07-11 15:49:29
【问题描述】:
我正在尝试将弹性搜索扩展连接到本地的 Magento 1.9 商店。 我创建了 docker-compose.yml
version: "3"
services:
application:
container_name: application
build: docker/application
volumes:
- ./application:/app
php:
container_name: php_1
build: docker/php
ports:
- 80:80
- 443:443
volumes:
- ./application:/app
links:
- elasticsearch
mysql:
container_name: mysql
build: docker/mysql
ports:
- 3306:3306
volumes:
- ./docker/tmp/db/mysql:/var/lib/mysql
environment:
MYSQL_DATABASE: db
MYSQL_USER: db
MYSQL_PASSWORD: db
MYSQL_ROOT_PASSWORD: db
elasticsearch:
container_name: elasticsearch
build: docker/elasticsearch
ports:
- 9200:9200
- 9300:9300
volumes:
-./docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
environment:
ES_JAVA_OPTS: "-Xmx256m -Xms256m"
我的 Dockerfile 如下所示:
FROM docker.elastic.co/elasticsearch/elasticsearch-oss:6.3.1
我的 elasticsearch.yml 看起来像这样:
cluster.name: "docker-cluster"
network.host: 0.0.0.0
discovery.zen.minimum_master_nodes: 1
discovery.type: single-node
在 docker-compose up 命令之后,我可以到达 localhost:9200 并返回:
{
"name" : "vzqbiF3",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "E7nRc0WrRKuD78knlR5zTQ",
"version" : {
"number" : "6.3.1",
"build_flavor" : "oss",
"build_type" : "tar",
"build_hash" : "eb782d0",
"build_date" : "2018-06-29T21:59:26.107521Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
我也可以从带有 elasticsearch 的容器中找到它。命令: curl -X GET 'http://localhost:9200' 返回相同。
问题是我无法从我的 php 容器访问此端口。我收到:
root@45a560f027fe:/app# curl -X GET 'http://localhost:9200'
curl: (7) Failed to connect to localhost port 9200: Connection refused
显然 Magento 无法连接到 elasticsearch。
2018-07-11T17:11:11+02:00 CRIT (2): Elasticsearch server is not reachable
我的错误在哪里?有人,有人吗?
【问题讨论】:
标签: elasticsearch docker-compose