我正在尝试从另一个容器中运行的nodejs应用程序连接到我的couchdb容器。我的码头工人撰写文件是这样的;
version: '3.1'
services:
couchdb:
image: couchdb
container_name: my-db
ports:
- 5984:5984
environment:
COUCHDB_USER: admin
COUCHDB_PASSWORD: password
api:
image: my-api
container_name: my-api
build: .
command: npm run dev
ports:
- 8080:8080
depends_on:
- couchdb
links:
- couchdb
但我总是收到一个错误,说;
Error: connect ECONNREFUSED 172.19.0.2:5984
at Object._errnoException (util.js:1003:13)
at _exceptionWithHostPort (util.js:1024:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1195:14)
我看到这篇文章提到了同样的问题;如何将数据库从 CouchDB 容器映射到同一 docker-compose 文件中的另一个容器 Web 应用程序
当我尝试这样做时,我遇到了同样的错误。新的码头工人撰写文件;
version: '3.1'
services:
couchdb:
image: couchdb
container_name: my-db
ports:
- 5984:5984
environment:
COUCHDB_USER: admin
COUCHDB_PASSWORD: password
api:
image: my-api
container_name: my-api
build: .
command: npm run dev
ports:
- 8080:8080
depends_on:
- couchdb
links:
- couchdb
environment:
DB_URL: http://admin:password@couchdb:5984
还是同样的错误..
我正在尝试在nodejs端将couchdb容器与其服务名称("couchdb"(连接。我还检查了容器是否在同一网络上。两者都位于使用网桥驱动程序的名为"my_default"的网络上。
当我尝试从本地运行的nodejs应用程序连接到数据库时,没有问题。
我忘记了什么吗?
您忘记包含连接的端口:
DB_URL: http://admin:password@couchdb:5984
为了补充 couchdb 已启动但尚未准备就绪的发现,Compose 中的 Docker 文章控制启动顺序列出了几种处理这种情况的方法,包括等待它、dockerize 或轮询依赖项状态的脚本等工具。