[英]Postgres fails to connect to a solr Docker container
我正在创建用于Rails开发的Docker环境,但是在postgres和solr彼此连接时遇到了一些困难,并且正在寻找有关如何修复它的指导。
我已经创建了一个docker-compose文件,以及用于查看某些页面的rails环境。 这是我的docker-compose文件:
app:
build: .
command: rails server -p 3000 -b '0.0.0.0'
volumes:
- .:/app
ports:
- "3000:3000"
links:
- postgres
- solr
postgres:
image: postgres:10.7
ports:
- "5432:5432"
solr:
image: solr:8.1.1
ports:
- "8983:8983"
links:
- postgres
但是,任何rake任务(例如rake db:seed或rake db:populate:all)都会失败,并显示错误消息Errno::EADDRNOTAVAIL: Failed to open TCP connection to localhost:8983 (Cannot assign requested address - connect(2) for "localhost" port 8983)
我希望该端口可用,因为在我的计算机上,我可以转到localhost:8983 / solr并能够看到solr管理员窗口,但是由于某些原因,当我运行rake命令时,postgres无法找到solr。 任何帮助将不胜感激,因为我目前很困,并且不知道该怎么办。
这里有2分:
--link
已弃用,建议您删除--links
docker-compose.yaml
配置的所有docker-compose.yaml
。 Compose将为您设置一个自定义网桥,并自动添加使您的服务可以互相访问的dns,请参阅此
在app
服务中,对于您的Rails代码,我猜您使用类似localhost:8983
的名称访问solr service
。 您可以将代码更改为使用solr:8983
,然后内部dns将引导您的应用查找solr
服务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.