Update from docker 4.2 to latest release

Hello,
We are using rocket chat docker with a composer file and running at the moment version 4.20

In the composer file the image is set to rocket.chat because i understand the docu like this, that this is the official and stable release.

I run the following commands to update the docker image to the newest version 4.6, this is the latest stable release, isn’t it?

docker pull registry.rocket.chat/rocketchat/rocket.chat:latest

docker-compose stop rocketchat

docker-compose rm rocketchat

docker-compose up -d rocketchat

After this commands the version is still 4.20
What did i wrong?

Any help would be appreciated.
Thank you.

Examine your docker-compose file. It sounds like 4.2 is hardcodwd.

Hi, thanks for your reply.
in the docker-compose file the image is rocket.chat

Based on this docu (Available Images - Rocket.Chat Docs)
rocket.chat is the offical image and stable.

Or did i misunderstand something?
My docker-compose looks like this

version: '2'

services:
  rocketchat:
    image: rocket.chat
    command: >
      bash -c
        "for (( ; ; )); do
          node main.js &&
          s=$$? && break || s=$$?;
          echo \"Could not start Rocket.Chat. Waiting 5 secs...\";
          sleep 5;
        done; (exit $$s)"
    restart: unless-stopped
    volumes:
      - /var/uploads:/app/uploads
    environment:
      - PORT=3000
      - ROOT_URL=https://my.url.com
      - MONGO_URL=mongodb://mongo:27017/rocketchat
      - MONGO_OPLOG_URL=mongodb://mongo:27017/local
      - MAIL_URL=smtp://smtp.email
    depends_on:
      - mongo
    ports:
      - 3000:3000
    labels:
      - "traefik.backend=rocketchat"
      - "traefik.frontend.rule=Host: your.domain.tld"

  mongo:
    image: mongo:5.0
    restart: unless-stopped
    volumes:
      - ./data/db:/data/db
      - ./data/dump:/dump
    command: >
      bash -c
        "while [ ! -f /data/db/WiredTiger ]; do
          echo \"wiredTiger migration hasn't started yet. Waiting 30 secs...\";
          sleep 30;
        done;
        docker-entrypoint.sh mongod --oplogSize 128 --replSet rs0 --storageEngine=wiredTiger;"
    depends_on:
      - migrator
    labels:
      - "traefik.enable=false"

  migrator:
    build: ./docker/
    volumes:
      - ./data/db:/data/db

  mongo-init-replica:
    image: mongo:5.0
    command: >
      bash -c
        "for (( ; ; )); do
          mongo mongo/rocketchat --eval \"
            rs.initiate({
              _id: 'rs0',
              members: [ { _id: 0, host: 'localhost:27017' } ]})\" &&
          s=$$? && break || s=$$?;
          echo \"Could not reach MongoDB. Waiting 5 secs ...\";
          sleep 5;
        done; (exit $$s)"
    depends_on:
      - mongo

Thanks very much for the help.

Can no one help me with this problem?

This is my yml file:

version: '2'

services:
  rocketchat:
    image: rocketchat/rocket.chat:latest
    command: >
      bash -c
        "for i in `seq 1 30`; do
          node main.js &&
          s=$$? && break || s=$$?;
          echo \"Tried $$i times. Waiting 5 secs...\";
          sleep 5;
        done; (exit $$s)"
    restart: unless-stopped
    volumes:
      - ./uploads:/app/uploads
    environment:
      - PORT=3000
      - ROOT_URL=http://localhost:3000
      - MONGO_URL=mongodb://mongo:27017/rocketchat
      - MONGO_OPLOG_URL=mongodb://mongo:27017/local
      - MAIL_URL=smtp://smtp.email
#       - HTTP_PROXY=http://proxy.domain.com
#       - HTTPS_PROXY=http://proxy.domain.com
    depends_on:
      - mongo
    ports:
      - 3000:3000
  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

  # this container's job is just run the command to initialize the replica set.
  # it will run the command and remove himself (it will not stay running)
  mongo-init-replica:
    image: mongo:4.0
    command: >
      bash -c
        "for i in `seq 1 30`; do 
            mongo mongo/rocketchat --eval \"
            rs.initiate({
              _id: 'rs0',
              members: [ { _id: 0, host: 'localhost:27017' } ]})\" &&
          s=$$? && break || s=$$?;
          echo \"Tried $$i times. Waiting 5 secs...\";
          sleep 5;
        done; (exit $$s)"
    depends_on:
      - mongo

You should probably try to use rocketchat/rocket.chat as the image. According to their docker hub page, the latest tag is 4.6.2, pushed 5 days ago.

Watch my video: Upgrading RocketChat in Docker - MongoDB 4 0 x Deprecated - YouTube

Hi,
I’m new to this forum, so please be kind to me :wink:
@vmsman: Thx a lot for your tutorial! I tried it and everything worked fine until the command of building the migrator image. It looks like as if it finishes, but after waiting at least another 10 minutes, my rocketchat (which worked fine with version 4.6.3) doesn’t come up anymore…any ideas on what could have gone wrong?
Thx a lot for your help!

@hergl can you be more specific? It sounds like you meant that you had problems with the migration from the mmap database engine to the wiredTiger database engine. If this is the case, make sure that you perform the migration to wiredTiger while still at MongoDB v4.0.x.