Hi there,
my question is on an combination of moving from snap to docker an upgrade to a newer RC version. I’m not quite shure, wether or not this forum is the right place to aks. So be free to move it to a more appropriate place if neccessary.
I intend to set up RC on docker on atest machine, so as to be familiar with the update before doing it on production. Eventually, I want to have an up to date RC version on production, and migrate the old snap database to the new RC. Therefore, I think I should migrate the snap 7.13.5 database to 7.13.5 docker and subsequently upgrade RC on docker. First on test – that’s why I want to keep the snap there for a while – then on production.
What version are you coming from?
7.13.5 on snap
What version are you going to?
7.13.5 on docker, if ok and database migrated move to 8.x on docker
What deployment method did you use to deploy?
Deploy with docker compose
Did you follow a particular doc? Which one?
What issues are you running into upgrading?
- There are two servers, production and test.
- Both servers run on 7.13.5 community edition
- Production server: Rocket.Chat is on Ubuntu 24.04. LTS, Snap, v. 7.13.5
- Test: Ubuntu 24.04. LTS as well. Was a copy of production system. Snap was still running.
- Installed docker and RC 7.13.5 (!) as advised on Deploy with Docker and Docker Compose
- Stopped snap
- Tried to register
Test is not going to replace production server.
I now have RC up and kind of running on test. Errors:
- when opening Administration-Workspace, I get „Error loading pages“ …
- When reloading the page, I get “Unique ID change detected”. Chosing “New workspace” results in an entry on Rocket.Chat Cloud , pointing to the domain of my production server, not test server … “Error loading pages” persists
- Container „otel/opentelemetry-collector-contrib:0.143.0“ exits with Error 137: error mounting “/var/run/docker.sock” to rootfs at “/var/run/docker.sock”
My compose.yml:
services:
rocketchat:
image: ${IMAGE:-registry.rocket.chat/rocketchat/rocket.chat}:${RELEASE:-8.0.1}
restart: always
labels:
prometheus.io/scrape: “true”
prometheus.io/port: ${METRICS_PORT:-9458}
container_tag: “${COMPOSE_PROJECT_NAME:-rocketchat}#rocketchat”
environment:
ROOT_URL: ${ROOT_URL:-http://localhost}
PORT: ${PORT:-3000}
DEPLOY_METHOD: docker
DEPLOY_PLATFORM: compose
REG_TOKEN: ${REG_TOKEN:-}
LICENSE_DEBUG: true
OVERWRITE_SETTING_Prometheus_Enabled: true
OVERWRITE_SETTING_Prometheus_Port: “${METRICS_PORT:-9458}”
MONGO_URL: ${MONGO_URL:-mongodb://mongodb:27017/rocketchat?replicaSet=rs0}
TRANSPORTER: “${NATS_URL-monolith+nats://nats:4222}”
INSTANCE_IP: “${INSTANCE_IP:-}”
depends_on:
mongodb-init-container:
condition: service_completed_successfully
entrypoint: sh
command:
- -c
- |
protocol=$(echo $$MONGO_URL | awk -F’://’ ‘{print $$1}’)
if [ “$$protocol” = “mongodb+srv” ]; then
echo “=====> MongoDB is using SRV protocol, skipping healthcheck before attempting to start rocket.chat …”;
exec node main.js;
fi
host_port=$(echo $$MONGO_URL | awk -F/ ‘{print $$3}’)
if echo $$host_port | grep -q @; then
host_port=$(echo $$host_port | awk -F@ ‘{print $$2}’)
fi
echo “=====> host_port: $$host_port”;
host=$${host_port%%:*}
port=$${host_port##*:}
port=$${port:-27017}
echo “=====> Waiting for MongoDB ($$host:$$port) to be ready before starting Rocket.Chat…”;
for i in $(seq 1 60); do
if nc -z $$host $$port >/dev/null 2>&1; then
echo “=====> MongoDB is up - starting Rocket.Chat”;
exec node main.js;
fi;
echo “=====> MongoDB not ready yet, retrying in 5 seconds…”;
sleep 5;
done;
echo “=====> Giving up waiting for MongoDB after 5 minutes”;
exit 1
expose: - ${PORT:-3000}
- ${METRICS_PORT:-9458}
ports: - “${BIND_IP:-0.0.0.0}:${HOST_PORT:-3000}:${PORT:-3000}”
- “${BIND_IP:-0.0.0.0}:${METRICS_PORT:-9458}:${METRICS_PORT:-9458}”
logging:
driver: “json-file”