Postgres无法连接到Solr Docker容器

时间:2019-08-12 22:05:38

标签: ruby-on-rails postgresql docker solr

我正在创建用于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 db:seed或rake db:populate:rake的任务都会失败,并显示错误消息 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。命令。对此有任何帮助将不胜感激,因为我目前仍处于困境,不知道该怎么办。

1 个答案:

答案 0 :(得分:0)

这里有2分:

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

  2. app服务中,我想您会使用localhost:8983之类的东西来访问solr service。您可以更改代码以使用solr:8983,然后内部dns将引导您的应用查找solr服务。