Verified Commit 94792bd5 authored by Quentin Duchemin's avatar Quentin Duchemin
Browse files

[Mattermost] Bump to 5.23.0, test new CI, add doc to upgrade major PGSQL version

parent 83784ba7
Pipeline #61746 passed with stages
in 5 minutes and 21 seconds
......@@ -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
......
......@@ -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).
......@@ -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
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment