简体   繁体   English

Docker Rails 弹性搜索

[英]Docker rails elastic search

I am trying to implement elastic search in my rails web app.我正在尝试在我的 rails web 应用程序中实现弹性搜索。 I am using docker.我正在使用码头工人。 I used this link for reference.我使用此链接作为参考。 My docker-compose.yml file is:我的 docker-compose.yml 文件是:

 mysql:
  image: mysql:5.6.34
  ports:
    - "3002:3002"
  volumes_from:
    - dbdata
  environment:
    - MYSQL_ROOT_PASSWORD=root
    - MYSQL_DATABASE=dev

dbdata:
  image: tianon/true
  volumes:
    - /var/lib/mysql

web:
  build: .
  environment:
    RAILS_ENV: development
  ports:
    - '3000:3000'
  volumes_from:
    - appdata
  links:
    - "mysql"
    - elasticsearch

appdata:
  image: tianon/true
  volumes:
    - ".:/workspace"

elasticsearch:
  image: elasticsearch
  ports:
    - "9200:9200"
  ulimits:
    memlock:
      soft: -1
      hard: -1
    nofile:
      soft: 65536
      hard: 65536
  mem_limit: 1g
  cap_add:
    - IPC_LOCK
  volumes:
    - /usr/share/elasticsearch/data

When I am trying to run Student.__elasticsearch__.create_index! force:true当我尝试运行Student.__elasticsearch__.create_index! force:true Student.__elasticsearch__.create_index! force:true as indicated in the above given link. Student.__elasticsearch__.create_index! force:true如上面给出的链接所示。 I am getting following error:我收到以下错误: 在此处输入图片说明

You need to set ENV for ELASTICSEARCH_URL to correct value您需要将ELASTICSEARCH_URL ENV设置为正确的值

ELASTICSEARCH_URL="http://<ip-of-your-docker-container>:9200"

As you have linked network, you can provide as bellow由于您有链接的网络,您可以提供如下

ELASTICSEARCH_URL="http://elasticsearch:9200"

Links allow you to define extra aliases by which a service is reachable from another service.链接允许您定义额外的别名,通过这些别名可以从另一个服务访问服务。 Any service can reach any other service at that service's name任何服务都可以通过该服务的名称访问任何其他服务

If no ENV is set, your rails app will use http://localhost:9200如果没有设置ENV ,你的 Rails 应用将使用http://localhost:9200

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM