Fra*_*nso 2 mongodb docker docker-compose
在我的本地 Mac M1 PRO 上,我使用 Docker compose 来挂载基于 MongoDB 5 的单节点复制集已有几个月了。
version: "3.9"
services:
mongodb:
image: mongo:5
command: --replSet rs0
ports:
- '28017:27017'
healthcheck:
test: echo 'db.runCommand("ping").ok' | mongo localhost:27017/admin --quiet
interval: 2s
timeout: 3s
retries: 5
mongo-init:
image: mongo:5
restart: "no"
depends_on:
mongodb:
condition: service_healthy
command: >
mongo --host mongodb:27017 --eval
'
rs.initiate( {
_id : "rs0",
members: [
{ _id: 0, host: "localhost:27017" }
]
})
'
Run Code Online (Sandbox Code Playgroud)
它运行良好,我有一个简单的 MongoDB 5 复制集。现在,我希望 MongoDB 6 也能实现同样的效果。因此,我将映像从 mongodb:5 修改为 mongodb:6,但副本集未挂载。
我有这个错误:
{"t":{"$date":"2023-04-14T08:52:52.326+00:00"},"s":"I", "c":"-", "id":4939300, "ctx":"monitoring-keys-for-HMAC","msg":"Failed to refresh key cache","attr":{"error":"NotYetInitialized: Cannot use non-local read concern until replica set is finished initializing.","nextWakeupMillis":24600}}
Run Code Online (Sandbox Code Playgroud)
我不需要 TLS 或加密功能。
我的配置有什么问题吗?
小智 9
mongo6 docker 容器已经更改了一些内部结构,这是我的工作版本除了在命令/运行状况检查中设置正确的端口差异之外,端口差异不相关。
mongo:
image: mongo:6
command: [--replSet, my-replica-set, --bind_ip_all, --port, "30001"]
ports:
- 30001:30001
healthcheck:
test: test $$(mongosh --port 30001 --quiet --eval "try {rs.initiate({_id:'my-replica-set',members:[{_id:0,host:\"mongo:30001\"}]})} catch(e) {rs.status().ok}") -eq 1
interval: 10s
start_period: 30s
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4030 次 |
| 最近记录: |