2017-03-29 56 views
0

使用泊坞窗撰写,我试图让我的app调用具有以下值的cloudant URL,但总是连接被拒绝:URL对码头工人cloudant组成

但是,如果我去http://0.0.0.0:8080/dashboard.html,我可以访问cloudant Web控制台。

这里是(引用在Running Cloudant as docker container with docker compose样本)我撰写文件

version: '2.1' 

services: 
    app: 
    build: app/ 
    links: 
    - cloudant 
    cloudant: 
    image: ibmcom/cloudant-developer:latest 
    container_name: cloudant-testdb 
    ports: 
     - "8080:80" 
    expose: 
     - "80" 
    volumes: 
     - cloudant:/srv 
    mem_limit: 256M 
    restart: always 
    privileged: true 
    network_mode: bridge 
volumes: 
    cloudant: 
+0

你有没有试图连接到默认端口5984? – ptitzler

+0

刚刚尝试过。虽然没有运气。谢谢。 – user3524882

回答

1

这是我如何得到这个工作:

  1. 指定主机名在docker-的cloudant容器撰写如下文件:

    restart: always 
    hostname: cloudant 
    privileged: true 
    
  2. 当通信g在容器之间使用容器中的服务公开的端口,而不是在映射中定义的端口。在这种情况下,您使用Cloudant暴露的端口是80那么,您的网址应该是这样的:

    http://admin:[email protected]

  3. 设置在应用程序容器中的network_mode价值bridge

这里是一个工作示例:https://github.com/markwatsonatx/tutorial-cloudant-nodejs-intro

此外,一定要接受Cloudant许可证并初始化数据库。这样做后您可能需要重新启动docker-compose。

+0

谢谢。你是对的。我应该使用端口80。但是,它仍然无法正常工作。当我尝试在我的应用程序容器中ping“cloudant”时,它说未知的主机。有任何想法吗? – user3524882

+0

我更新了我的答案。我想你需要将network_mode设置为在应用程序容器中桥接。 – markwatsonatx

+0

它的工作!非常感谢@markwatsonatx。我试图在应用程序之前使用'bridge'网络,但失败了。关键(至少对我来说)是重启docker撰写。 – user3524882