2017-03-29 95 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