繁体   English   中英

Postgres无法连接到Solr Docker容器

[英]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分:

  1. --link已弃用,建议您删除--links docker-compose.yaml配置的所有docker-compose.yaml Compose将为您设置一个自定义网桥,并自动添加使您的服务可以互相访问的dns,请参阅

  2. app服务中,对于您的Rails代码,我猜您使用类似localhost:8983的名称访问solr service 您可以将代码更改为使用solr:8983 ,然后内部dns将引导您的应用查找solr服务。

暂无
暂无

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

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