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