在docker-compose中与Solr 4.10容器通信

时间:2016-05-04 19:11:27

标签: django solr docker lucene docker-compose

我正在尝试使用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

1 个答案:

答案 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