When I updated my Docker Compose based Onlyoffice instance today, I soon discovered that the update broke my installation. Hm, wasn’t one of the promises of container based services to prevent exactly such a thing from happening? Well perhaps, but if you have several containers working with each other in a Docker Compose setup, non-backwards compatible changes in one image can render the overall service unusable. So what exactly happened?
Fortunately, I automatically create a ZFS snapshot before running updates, so I could go back to a working Onlyoffice installation by shutting down the virtual machine on which I run my Docker containers, restore the VM from the snapshot and restart it. Gone are all changes from the update. I then updated the containers of the Onlyoffice Docker Compose directory one by one instead of all at the same time to see when the service would break. Updating the Onlyoffice image worked, but after updating the Rabbitmq container, things stopped working. Gotcha!

I then had a closer look at the Docker Hub page of Rabbitmq and noticed that they had updated from version 3 to version 4 recently. Hm, a full version jump, perhaps that is the problem? Also, the OnlyOffice Docs System requirements list Rabbitmq 3.13 as the version to use.
In my docker-compose.yml file, I have the following image definition:
220-onlyoffice-rabbitmq-ee:
container_name: 220-onlyoffice-rabbitmq-ee
image: rabbitmq
The last line is the important one: As no version is given, the newest version is always used, which was version 4.1.x. OK, so let’s roll back, I thought, and modified the image definition in my compose file as follows:
220-onlyoffice-rabbitmq-ee:
container_name: 220-onlyoffice-rabbitmq-ee
image: rabbitmq:3
The ‘:3‘ is the important change. After a ‘docker compose pull’ the older version chain was loaded and Onlyoffice started working again. Success!
While all of this is nice and well, there is one danger though: At some point, the version 3.x release line of Rabbitmq will be unsupported. I’m not sure when this will be and I’m even less certain if I would notice. So one has to keep a look out for old and unsupported versions and adapt the Docker Compose file. Well, what could possibly go wrong here?