【发布时间】:2017-10-12 13:48:22
【问题描述】:
我正在尝试将正在运行的 Rails 应用程序移至 docker 环境。
遵循 UNIX(/docker) 理念,我希望每个服务都在自己的容器中。
我设法让 redis 和 postgres 正常工作,但我很难让 slor 和 rails 互相交流。
行执行时在文件app/models/spree/sunspot/search_decorator.rb中
@solr_search.execute
控制台出现以下错误:
Errno::EADDRNOTAVAIL (Cannot assign requested address - connect(2) for "localhost" port 8983):
在研究解决方案时,我发现人们只是将 solr 安装在与他们的 rails 应用程序相同的容器中。但我宁愿把它放在一个单独的容器里。
这是我的config/sunspot.yml
development:
solr:
hostname: localhost
port: 8983
log_level: INFO
path: /solr/development
和docker-compose.yml 文件
version: '2'
services:
db:
(...)
redis:
(...)
solr:
image: solr:7.0.1
ports:
- "8983:8983"
volumes:
- solr-data:/opt/solr/server/solr/mycores
entrypoint:
- docker-entrypoint.sh
- solr-precreate
- mycore
networks:
- backend
app:
build: .
env_file: .env
environment:
RAILS_ENV: $RAILS_ENV
depends_on:
- db
- redis
- solr
ports:
- "3000:3000"
tty: true
networks:
- backend
volumes:
solr-data:
redis-data:
postgres-data:
networks:
backend:
driver: bridge
有什么建议吗?
【问题讨论】:
-
请在问题中包含您的 yml 文件:外部链接可能随时消失
-
@lifeisfoo 完成,感谢您指出。
标签: ruby-on-rails docker solr docker-compose sunspot-rails