docker-compose的CouchDB无法从主机访问(但可以从localhost访问)

时间:2018-08-28 21:34:51

标签: docker-compose couchdb-2.0

我正在使用docker-compose和以下docker-compose.yml(以下是一个最小示例)来设置CouchDB:

version: "3.6"
  services:
    couchdb:
      container_name: couchdb
      image: apache/couchdb:2.2.0
      restart: always
      ports:
      - 5984:5984
      volumes:
      - ./test/couchdb/data:/opt/couchdb/data
      environment:
      - 'COUCHDB_USER=admin'
      - 'COUCHDB_PASSWORD=password'

  couchdb_setup:
    depends_on: ['couchdb']
    container_name: couchdb_setup
    image: apache/couchdb:2.2.0
    command: ['/bin/bash', '-x', '-c', 'cat /usr/local/bin/couchdb_setup.sh | tr -d "\r" | bash']
    volumes:
    - ./scripts/couchdb_setup.sh:/usr/local/bin/couchdb_setup.sh:ro
    environment:
    - 'COUCHDB_USER=admin'
    - 'COUCHDB_PASSWORD=password'

第二个容器的安装脚本正在执行以下脚本./scripts/couchdb_setup.sh

until curl -f http://couchdb:5984; do
  sleep 1
done

现在,问题在于curl调用始终返回The requested URL returned error: 502 Bad Gateway。我发现CouchDB仅在http://localhost:5984上侦听,而不在http://couchdb:5984上侦听,正如我猛击到couchdb容器并发出两个卷发所证明的那样。对于http://localhost:5984,我得到了预期的响应,对于http://couchdb:5984以及http://<CONTAINER_IP>:5984(在我的情况下为http://192.168.32.2:5984),我都得到了server 192.168.32.2 is unreachable ...

我查看了configs,尤其是[chttp]设置及其bind_address参数。默认情况下,bind_address设置为any,但我也尝试使用0.0.0.0,但无济于事。

我正在寻找提示我做错了什么,以及有关如何使用docker-compose设置CouchDB的建议。任何帮助表示赞赏。

0 个答案:

没有答案