我正在尝试在我的rails网络应用中实施弹性搜索。我正在使用码头工具。我使用this link作为参考。我的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
当我尝试按照上面给出的链接运行Student.__elasticsearch__.create_index! force:true
时。我收到以下错误:
答案 0 :(得分:0)
您需要为ELASTICSEARCH_URL
设置 ENV 以更正值
ELASTICSEARCH_URL="http://<ip-of-your-docker-container>:9200"
由于您已关联网络,因此可以提供以下内容
ELASTICSEARCH_URL="http://elasticsearch:9200"
链接允许您定义额外的别名,通过该别名可以从其他服务访问服务。任何服务都可以通过该服务的名称访问任何其他服务
如果未设置 ENV ,您的rails应用将使用http://localhost:9200