Docker · 2月 1, 2022 0

解决用官方Docker-compose安装RocketChat后MongoDB一直重启的问题

相信不少人为了图省事儿会用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一下,应该不会再重启了。