2016-05-04 38 views
0

我想在Web服务器上使用Docker-Compose,Django和Solr设置搜索引擎。在这种情况下,我使用Solr 4.10。与docker-compose中的Solr 4.10容器通信

我的问题是,虽然我可以得到Solr服务,数据库和Django应用程序设置正确,但Solr服务拒绝与它的连接。任何尝试从我的IP地址访问Solr管理面板的管理面板根本无法加载,但也不会超时,这意味着我的页面在等待Solr面板发送答复时挂起。

我发现从this问题,如果我是转发端口,我将能够访问http://localhost:8983/solr/管理面板。所以这导致我认为它拒绝所有的外部连接。

我尝试了一种只允许指定IP地址的指定here的方法(不管怎么说我都会这样),但是这似乎不起作用,或者因为我的连接在两端仍然被拒绝。

仅供参考,我的Solr的容器使用码头,这里是我的搬运工,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

当您使用图像构建容器时,您可以访问管理面板吗? https://hub.docker.com/_/solr/ – erroneousboat

回答

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