Apple M1设备Docker部署CouchDB容器启动报错求助
问题根源
错误提示/opt/couchdb/etc/local.d/docker.ini: Is a directory明确说明:你在docker-compose中试图将宿主机的目录/opt/couchdb-322.etc/docker.ini挂载到容器内的文件路径/opt/couchdb/etc/local.d/docker.ini,导致容器内该路径被识别为目录,而CouchDB启动脚本需要操作这个路径作为配置文件,从而触发报错。
解决方案
1. 修复宿主机的路径问题
首先检查宿主机上的/opt/couchdb-322.etc/docker.ini是否为目录:
ls -ld /opt/couchdb-322.etc/docker.ini
如果输出显示是目录,执行以下操作:
- 删除错误创建的目录:
rm -rf /opt/couchdb-322.etc/docker.ini - 创建对应的空配置文件(确保父目录存在):
mkdir -p /opt/couchdb-322.etc && touch /opt/couchdb-322.etc/docker.ini
2. 保持docker-compose配置不变(路径逻辑正确)
你的docker-compose挂载配置本身是正确的,只要宿主机侧是文件,挂载后容器内就能正确识别为配置文件:
couchdb: container_name: couchdb image: apache/couchdb:3.2.2 volumes: - /opt/couchdb-322.data:/opt/couchdb/data:delegated - /opt/couchdb-322.etc/docker.ini:/opt/couchdb/etc/local.d/docker.ini:delegated environment: - COUCHDB_USER=username - COUCHDB_PASSWORD=password ports: - "5984:5984" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5984"] interval: 15s timeout: 2s retries: 20 start_period: 1m
3. 重新启动容器
执行以下命令重新启动:
docker-compose down && docker-compose up -d
额外说明
- 关于Apple M1(ARM架构):
apache/couchdb:3.2.2是多架构镜像,已经支持ARM64,所以架构不是当前问题的诱因,无需额外调整镜像。
内容的提问来源于stack exchange,提问作者Raju
相关产品推荐
相关产品推荐

