我正在尝试使用Docker-Compose,Django和Solr在Web服务器上设置搜索引擎。在这种情况下,我使用的是Solr 4.10。
我的问题是,虽然我可以正确设置Solr服务,数据库和Django应用程序,但Solr服务拒绝连接它。任何从我的IP地址访问Solr管理面板的尝试都没有加载管理面板,但也没有加载,这意味着我的页面在等待Solr面板发送回复时挂起。
我从this问题中发现,如果我是前向端口,我将能够访问http://localhost:8983/solr/上的管理面板。所以这让我认为它拒绝所有外部连接。
我尝试了一个指定here的方法,只允许特定的IP地址(我还是想要的)但这似乎不起作用,因为我的连接仍然被拒绝两端。
作为参考,我的Solr容器使用Jetty,这是我的docker-compose.yml:
solr:
build: /home/ubuntu/search_engine_foodily_solr/SOLR_4.10/.
ports:
- "8983:8983"
volumes:
- /home/ubuntu/search_engine_foodily_solr/schema.xml
db:
image: postgres:latest
environment:
POSTGRES_PASSWORD: searcher
POSTGRES_USER: searcher
volumes:
- ./backups:/home/backups
web:
build: .
command: bash -c "sleep 5 && python -u search_engine/manage.py runserver 0.0.0.0:8080"
volumes:
- .:/code
- ../static:/code/static
ports:
- "80:8080"
links:
- db
- solr
environment:
- PYTHONUNBUFFERED=0
答案 0 :(得分:0)
我实际上遇到了同样的问题。所以我试图做的不是将solr链接到web容器,如下所示。它终于奏效了。
solr:
build: /home/ubuntu/search_engine_foodily_solr/SOLR_4.10/.
ports:
- "8983:8983"
volumes:
- /home/ubuntu/search_engine_foodily_solr/schema.xml
db:
image: postgres:latest
environment:
POSTGRES_PASSWORD: searcher
POSTGRES_USER: searcher
volumes:
- ./backups:/home/backups
web:
build: .
command: bash -c "sleep 5 && python -u search_engine/manage.py runserver 0.0.0.0:8080"
volumes:
- .:/code
- ../static:/code/static
ports:
- "80:8080"
links:
- db
environment:
- PYTHONUNBUFFERED=0