[英]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.