Mattermost nativ zu docker-compose setup migrieren

9 Nov 2020 - Lesezeit: 3 Minuten

ich kam letztens in die Gelegenheit einen nativ betriebenen Mattermost Dienst zu dockerisieren. Dabei sollten natürlich auch die Daten erhalten bleiben.

Wie das geht, zeige ich nachfolgend:

Backup der Daten(Bank)

Zunächst einmal müssen wir natürlich ein Backup der Datenbank und der Daten erstellen. Auf meinem System wurde postgresql genutzt und die Daten lagen gemäßg der Dokumentation auch brav unter /opt

su postgres -c "pg_dumpall > /tmp/mattermostbackup_all.psql"
cd /opt
tar -czvf /tmp/mattermostbackup.tgz mattermost

Upload auf den neuen Host

Nachdem nun die Daten schön geordnet gesichert sind, müssen sie natürich auf den neuen (Docker) Host.

scp  /tmp/mattermostbackup_all.psql root@neuer-docker-host:/root
scp /tmp/mattermostbackup.tgz root@neuer-docker-host:/root

Einrichten von Mattermost als Docker-Compose Setup

Mattermost ist so freundlich und stellt gleich ein paar Docker-Compose Files etc zur Verfügung. Sehr löblich. Diese wollen wir nutzen

git clone https://github.com/mattermost/mattermost-docker.git
cd mattermost-docker
docker-compose build

Damit haben wir schon mal unser image gebaut. Nun brauchen wir noch ein paar Volumes. Die Daten vom früheren /opt müssen natürlich anschließend auch dahin kopiert werden. Das die Ordnerstruktur beachtet werden muss ist obligatorisch.

mkdir -pv ./volumes/app/mattermost/{data,logs,config,plugins,client-plugins}
sudo chown -R 2000:2000 ./volumes/app/mattermost/

Jetzt kann es losgehen: wir starten die Maschinen

docker-compose up -d

Einrichten von SSL

Selbstverständlich nutzen wir SSL. Wer will das denn schon nicht machen? Dazu kopieren wir unser super, duper Zertifikat einfach in das Volume und starten das deployment neu.

cp /etc/ssl/mein-tolles-ssl-cert.pem ./volumes/web/cert/cert.pem
cp /etc/ssl/mein-tolles-ssl-key.pem ./volumes/web/cert/key-no-password.pem
docker-compose restart

Import der Datenbank

Wenn wir schon grade dabei sind, können wir auch unsere Datenbank importieren und so zumindest den Großteil der releanten Datenk rekonstruieren.

docker stop mattermost-docker_app_1
docker stop mattermost-docker_web_1
docker-compose exec db dropdb mattermost -U postgres
docker-compose exec db createdb mattermost -U postgres
cat /root/mattermostbackup_all.psql | docker-compose exec -T db psql -d mattermost -U postgres
docker start mattermost-docker_app_1
docker start mattermost-docker_web_1

Quellen und Links

Es wurden noch keine Kommentare verfasst, sei der erste!