我正在使用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的建议。任何帮助表示赞赏。