Versions
Ce qui tourne, dans quelle version, et si cette version est fixée (elle ne change que si on la modifie) ou mobile (elle suit les nouvelles versions à chaque reconstruction).
Les machines
| Composant | Version | Fixée ? | Défini dans |
|---|---|---|---|
| Système | Ubuntu 24.04 LTS | Oui | Création des VM (--image-family=ubuntu-2404-lts-amd64) |
| Docker Engine | dernière version stable du dépôt Docker | Non | Rôle docker (docker-ce) |
Binaire docker-compose | dernière version publiée | Non | Rôle docker (latest/download) |
Plugin docker compose | celui installé avec Docker | Non | Dépôt Docker |
Les conteneurs de production
| Composant | Image | Fixée ? | Défini dans |
|---|---|---|---|
| Traefik | traefik:v3.3 | Version mineure | traefik/docker-compose.yml |
| PostgreSQL | postgres:17-alpine | Version majeure | app/docker-compose.yml |
| Site web | ghcr.io/saliehsab/timemanager-web:latest | Non (dernier build de main) | app/docker-compose.yml |
| API | ghcr.io/saliehsab/timemanager-api:latest | Non (dernier build de main) | app/docker-compose.yml |
| Documentation | ghcr.io/saliehsab/timemanager-docs:latest | Non (dernier build de main) | app/docker-compose.yml |
La construction des images
| Composant | Version | Fixée ? | Défini dans |
|---|---|---|---|
| Node.js (build du site) | node:22-slim | Version majeure | timemanager-web/Dockerfile |
| nginx (site et doc) | nginxinc/nginx-unprivileged:stable-alpine | Non (branche stable) | timemanager-web/Dockerfile, timemanager-docs/Dockerfile |
| VitePress (doc) | 1.6.4 | Oui | timemanager-docs/package.json |
| Elixir | 1.17.3 | Oui | timemanager-api/Dockerfile |
| Erlang/OTP | 26.2.5.16 | Oui | timemanager-api/Dockerfile |
| Debian (API) | trixie-20260610-slim | Oui | timemanager-api/Dockerfile |
Les outils de CI/CD
| Composant | Version | Fixée ? | Défini dans |
|---|---|---|---|
| Jenkins | jenkins/jenkins:lts | Non (dernière LTS) | jenkins/Dockerfile |
| Plugins Jenkins | sans version | Non | jenkins/Plugins/plugins.txt |
| Trivy | aquasec/trivy:0.74.0 | Oui | jenkins/pipelines/*.groovy |
| PostgreSQL de test | postgres:17-alpine | Version majeure | jenkins/pipelines/backend.groovy |
Les applications
| Composant | Version | Défini dans |
|---|---|---|
| Phoenix | 1.8.14 | timemanager-api/mix.lock |
| Ecto SQL | 3.14.0 | timemanager-api/mix.lock |
| Bandit (serveur HTTP) | 1.12.5 | timemanager-api/mix.lock |
| Swoosh (emails) | 1.28.1 | timemanager-api/mix.lock |
| Vue | 3.5 | timemanager-web/package-lock.json |
| Vite | 8 | timemanager-web/package-lock.json |
| Expo (mobile) | SDK 57 | timemanager-mobile/package.json |
| React Native (mobile) | 0.86 | timemanager-mobile/package.json |
Fixer une version
Une version mobile peut changer à la prochaine reconstruction sans que personne ne l'ait décidé. Pour la fixer, écrire la version exacte : jenkins/jenkins:2.xxx.x-lts, plugin:1.2.3 dans plugins.txt, traefik:v3.3.x. Voir Limites et améliorations.
Vérifier ce qui tourne
bash
# sur une VM
lsb_release -d
docker version --format '{{.Server.Version}}'
docker compose version
# les images des conteneurs
docker ps --format 'table {{.Names}}\t{{.Image}}'
docker inspect timemanager-back --format '{{.Image}}'