相信不少人为了图省事儿会用RocketChat官方提供的docker-compose.yml一键部署RocketChat。
但一些小伙伴可能在up了docker之后发现RocketChat并没有成功运行。用docker ps
查看各个容器运行情况,会看到mongodb的容器一直处于“restarting”(重启)状态。一个亲测可行的解决方法如下:
官方提供的docker-compose中关于mongodb部署的内容是这样的(截至2022.02.01)👇
# 略略略
mongo:
image: mongo:4.0
restart: unless-stopped
volumes:
- ./data/db:/data/db
#- ./data/dump:/dump
command: mongod --smallfiles --oplogSize 128 --replSet rs0 --storageEngine=mmapv1
labels:
- "traefik.enable=false"
# 略略略
注意那行被注释掉的#- ./data/dump:/dump
。取消掉它的注释,然后把注释加载其上一行- ./data/db:/data/db
前,让脚本内容变成下面这样👇
# 略略略
mongo:
image: mongo:4.0
restart: unless-stopped
volumes:
#- ./data/db:/data/db
- ./data/dump:/dump
command: mongod --smallfiles --oplogSize 128 --replSet rs0 --storageEngine=mmapv1
labels:
- "traefik.enable=false"
# 略略略
最后停+删掉正在运行的RocketChat和出了问题的mongodb容器,以及正在打酱油的mongo-init-replica容器。重新docker-compose up -d
一下,应该不会再重启了。