Elasticsearch с PHP не связаны друг с другом - PullRequest
0 голосов
/ 04 февраля 2019

Вот мой docker-compose:

version: "2"
services:
  mongodb:
    container_name: "elastic_backend_mongodb"
    restart: "always"
    image: "mongo:latest"
    volumes:
      - "./data/db/:/data/db"
    ports:
      - "27017:27017"
    command: --storageEngine wiredTiger
    networks:
      - "elastic_backend"
  php:
      build: ./develop
      container_name: "elastic_backend_php"
      restart: "always"
      environment:
        PHP_IDE_CONFIG: serverName=elastic_backend
      depends_on:
        - "mongodb"
        - "db"
        - "elasticsearch"
      expose:
        - "9000"
      volumes:
        - "../.:/var/www/html"
      networks:
        - "elastic_backend"
  nginx:
      image: "nginx:latest"
      container_name: "elastic_backend_nginx"
      restart: "always"
      volumes:
        - "./nginx/conf/nginx.conf:/etc/nginx/conf/nginx.conf:ro"
        - "./nginx/conf.d:/etc/nginx/conf.d:ro"
      ports:
        - "80:80"
      volumes_from:
        - "php"
      networks:
        - "elastic_backend"
  db:
    container_name: "elastic_backend_mysql"
    restart: "always"
    image: "mysql:5.7"
    command: --max_allowed_packet=32505856
    environment:
      MYSQL_ROOT_PASSWORD: "asd"
      MYSQL_DATABASE: "elastic_backend"
    ports:
      - "3306:3306"
    volumes:
      - "./mysql:/var/lib/mysql"
    networks:
      - "elastic_backend"
  elasticsearch:
    container_name: "elastic_backend_es"
    image: elasticsearch:6.5.4
    environment:
      - discovery.type=single-node
    ports:
      - "9200:9200"
      - "9300:9300"
networks:
  elastic_backend:

Итак, все работает хорошо, за исключением того, что php-контейнер не может пропинговать эластичный контейнер поиска.Контейнеры db и mongodb хорошо пингуются из контейнера php.Я также пытался использовать «ссылки» и аналоговые директивы для докера, но безуспешно.Так что же я делаю не так?

Я могу ПОЛУЧИТЬ оставшийся интерфейс эластичного поиска от хоста (macos):

{
  "name": "cDsdqXL",
  "cluster_name": "docker-cluster",
  "cluster_uuid": "010ETY4zT_C8XJu1IfON-g",
  "version": {
    "number": "6.5.4",
    "build_flavor": "default",
    "build_type": "tar",
    "build_hash": "d2ef93d",
    "build_date": "2018-12-17T21:17:40.758843Z",
    "build_snapshot": false,
    "lucene_version": "7.5.0",
    "minimum_wire_compatibility_version": "5.6.0",
    "minimum_index_compatibility_version": "5.0.0"
  },
  "tagline": "You Know, for Search"
}

1 Ответ

0 голосов
/ 04 февраля 2019
Контейнер

PHP не может получить доступ к контейнеруasticsearch, потому что сервис elasticsearch не подключен к сети elastic_backend.Добавьте это в сервис elasticsearch.

    networks:
      - "elastic_backend"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...