CouchDB с docker-compose недоступен с хоста (но с локального хоста) - PullRequest
0 голосов
/ 29 августа 2018

Я настраиваю CouchDB с помощью docker-compose со следующим docker-compose.yml (ниже приведен минимальный пример):

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 и выпускаю оба curl; для http://localhost:5984 я получаю ожидаемый ответ, для http://couchdb:5984, а также http://<CONTAINER_IP>:5984 (в моем случае это http://192.168.32.2:5984) с server 192.168.32.2 is unreachable ...

Я посмотрел на конфиги и особенно на [chttp] и его аргумент bind_address. По умолчанию bind_address установлен на any, но я также пытался использовать 0.0.0.0, но безрезультатно.

Я ищу подсказки о том, что я сделал неправильно, и советы о том, как настроить CouchDB с помощью docker-compose. Любая помощь приветствуется.

...