From 94792bd5c960bff1d45a4753ecd58f1496052016 Mon Sep 17 00:00:00 2001 From: Quentin Duchemin <quentinduchemin@tuta.io> Date: Thu, 28 May 2020 22:26:52 +0200 Subject: [PATCH] [Mattermost] Bump to 5.23.0, test new CI, add doc to upgrade major PGSQL version --- pica-mattermost/Dockerfile | 2 +- pica-mattermost/README.md | 17 +++++++++++++++++ pica-mattermost/docker-compose.yml | 12 ++++++------ 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/pica-mattermost/Dockerfile b/pica-mattermost/Dockerfile index 15a969f6..cc746381 100644 --- a/pica-mattermost/Dockerfile +++ b/pica-mattermost/Dockerfile @@ -4,7 +4,7 @@ FROM alpine:3.11 ENV PATH="/mattermost/bin:${PATH}" # Picasoft : change these values. The team version is used by default -ENV MM_VERSION=5.21.0 +ENV MM_VERSION=5.23.0 # Get these ids with the output of `id mattermost` on the VM hosting the app ARG PUID=5000 ARG PGID=5000 diff --git a/pica-mattermost/README.md b/pica-mattermost/README.md index f1cce459..ff7df00d 100644 --- a/pica-mattermost/README.md +++ b/pica-mattermost/README.md @@ -20,3 +20,20 @@ Enfin, le Docker Compose est adapté à notre configuration. Il suffit de changer l'argument correspondant à la version dans le `Dockerfile` ainsi que le tag d'image dans le `docker-compose.yml`. Régulièrement, on vérifiera l'upstream pour s'assurer qu'il n'y a pas de changements majeurs, auxquel cas on les intègrera dans le `Dockerfile` local. Ce n'est pas le plus pratique, mais ni la CI ni Docker ne permet de reprendre un `Dockerfile` distant et d'y intégrer des modifications. + +### Mise à jour du SGBD + +Il peut arriver que la version de PostgreSQL ne soit plus supportée par Mattermost. +Sans en arriver là , il est bon de régulièrement mettre à jour PostgreSQL : +> While upgrading will always contain some level of risk, PostgreSQL minor releases fix only frequently-encountered bugs, security issues, and data corruption problems to reduce the risk associated with upgrading. For minor releases, the community considers not upgrading to be riskier than upgrading. https://www.postgresql.org/support/versioning/ + +Les mise à jours mineures (changement du Y de la version X.Y) peuvent se faire sans intervention humaine. On veillera à bien regarder les logs. + +En revanche, le passage d'une version majeure à une autre nécessitera une intervention manuelle. + +La documentation complète est ici : https://www.postgresql.org/docs/current/upgrading.html + +De manière générale, la façon la plus simple est de se rendre dans l'ancien conteneur, de réaliser un `pg_dumpall` et de le copier en lieu sûr (`docker cp`). +Ensuite, on supprime l'ancien volume de base de données, on relance le nouveau conteneur de base de données (qui sera sans donnée), on monte le fichier de dump, et on lance un `psql -U <user> -d <db> -f <dump_file>` (valeurs de `user` et `db` à matcher avec le fichiers de secrets). + +On attend, et **si tout s'est bien passé**, on peut lancer le conteneur applicatif (Mattermost). diff --git a/pica-mattermost/docker-compose.yml b/pica-mattermost/docker-compose.yml index 0a56c85d..2cc82873 100644 --- a/pica-mattermost/docker-compose.yml +++ b/pica-mattermost/docker-compose.yml @@ -6,17 +6,17 @@ networks: volumes: mattermost-config: - external: true + name: mattermost-config mattermost-data: - external: true + name: mattermost-data mattermost-plugins: - external: true + name: mattermost-plugins mattermost-db: - external: true + name: mattermost-db services: mattermost: - image: registry.picasoft.net/pica-mattermost:5.21.0 + image: registry.picasoft.net/pica-mattermost:5.23.0 container_name: mattermost-app links: - mattermost-db:mattermost-db @@ -40,7 +40,7 @@ services: restart: unless-stopped mattermost-db: - image: postgres:9.4-alpine + image: postgres:12-alpine container_name: mattermost-db volumes: - mattermost-db:/var/lib/postgresql/data -- GitLab