无法打开与localhost:9200的TCP连接-Docker上的Rails

时间:2019-12-01 09:06:13

标签: ruby-on-rails ruby docker elasticsearch

我想在docker上运行ElasticSearch并与其连接导轨。

这是我的docker-compose.yml文件

version: '3'
services:
  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: P@ssw0rd
      MYSQL_DATABASE: chatsystem
      MYSQL_USER: root
      MYSQL_PASSWORD: P@ssw0rd
    ports:
      - "3307:3306"

  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.4.2
    container_name: es01
    environment:
      - node.name=es01
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es02,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic

  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.4.2
    container_name: es02
    environment:
      - node.name=es02
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data02:/usr/share/elasticsearch/data
    networks:
      - elastic
  es03:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.4.2
    container_name: es03
    environment:
      - node.name=es03
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=es01,es02
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data03:/usr/share/elasticsearch/data
    networks:
      - elastic

  app:
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - ".:/ChatSystem"
    depends_on:
      - db
      - es01
      - es02
      - es03
    ports:
      - "3000:3000"
    links:
      - db
      - es01
      - es02
      - es03
    environment:
      DB_USER: root
      DB_NAME: chatsystem
      DB_PASSWORD: P@ssw0rd
      DB_HOST: db

volumes:
  data01:
    driver: local
  data02:
    driver: local
  data03:
    driver: local

networks:
  elastic:
    driver: bridge

当我运行docker-compose up并通过浏览器访问localhost:9200时。我得到这个回应

{
  "name": "es01",
  "cluster_name": "es-docker-cluster",
  "cluster_uuid": "fNDAvsI6QUyHkzy919PHhw",
  "version": {
    "number": "7.4.2",
    "build_flavor": "default",
    "build_type": "docker",
    "build_hash": "2f90bbf7b93631e52bafb59b3b049cb44ec25e96",
    "build_date": "2019-10-28T20:40:44.881551Z",
    "build_snapshot": false,
    "lucene_version": "8.2.0",
    "minimum_wire_compatibility_version": "6.8.0",
    "minimum_index_compatibility_version": "6.0.0-beta1"
  },
  "tagline": "You Know, for Search"
}

当我尝试创建新的“消息”时,出现此错误

Errno :: EADDRNOTAVAIL(无法打开与localhost:9200的TCP连接(无法分配请求的地址-“ localhost”端口9200的connect(2)))

message.rb文件

class Message < ApplicationRecord
  include Elasticsearch::Model
  include Elasticsearch::Model::Callbacks

  settings do
    mappings dynamic: false do
      indexes :message, type: :text
    end
  end

end

Message.import force: true

我正在使用这种宝石

gem 'elasticsearch-model', git: 'git://github.com/elastic/elasticsearch-rails.git', branch: 'master'
gem 'elasticsearch-rails', git: 'git://github.com/elastic/elasticsearch-rails.git', branch: 'master'

1 个答案:

答案 0 :(得分:0)

在您的环境中,您必须添加 GRIDREF Lat Long Year Species Pop_Index TempJanuary 1 SP8816 51.83569 -0.7242336 2006 Collared Dove 0 2.128387 100 SP8816 51.83569 -0.7242336 2007 Linnet 0 4.233226 1000 SP9212 51.79909 -0.6672580 1999 Greenfinch 2 5.270968 2000 SP9322 51.88881 -0.6500750 2004 Willow Warbler 0 4.826452 3000 SP9326 51.92476 -0.6489968 1995 Collared Dove 1 4.390322 4000 SP9440 52.05043 -0.6306267 2009 Jackdaw 0 2.934516 5000 SP9513 51.80758 -0.6234929 2011 Meadow Pipit 1 3.841290 6000 SP9632 51.97818 -0.6037104 2007 Canada Goose 4 7.082580 10000 SP9939 52.04057 -0.5580262 2011 Buzzard 0 3.981290 20213 TF7133 52.86731 0.5389662 1996 Robin 0 3.532903 30213 TF9437 52.89543 0.8825978 2007 Blue Tit 8 7.028710 ,然后重建docker compose。您可以将此article作为参考。