Knowledge base of ~80+ markdown files across 14 domains (00-13), Logseq graph, hardware design files (KiCAD), infrastructure configs, and talas-wiki static site. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3.8 KiB
3.8 KiB
Conteneurisation — Docker & Incus
Ce dossier contient les fichiers de conteneurisation pour les services Talas.
Stratégie de conteneurisation
Talas utilise deux technologies complémentaires selon le cas d'usage :
| Technologie | Usage | Pourquoi |
|---|---|---|
| Docker | Services applicatifs (bases de données, queues, outils) | Images standardisées, écosystème riche, docker-compose |
| Incus | Machines complètes nécessitant un OS complet | Isolation système, ZFS backing natif, meilleur pour les workloads persistants |
Services Docker déployés
Développement (docker-compose.yml)
| Service | Image | Port exposé | Usage |
|---|---|---|---|
postgres |
PostgreSQL 16 | 15432 | Base de données principale |
redis |
Redis 7 | 16379 | Sessions, cache, rate limiting |
rabbitmq |
RabbitMQ 3 | 15672 / 25672 | Message broker (événements async) |
clamav |
ClamAV 1.4 | 13310 | Scan antivirus des uploads |
minio |
MinIO | 19000 | Stockage objet S3-compatible |
elasticsearch |
Elasticsearch | 19200 | Recherche full-text |
Production (docker-compose.prod.yml)
Mêmes services avec en plus :
- Volumes persistants (données sur pools ZFS)
- Limites de ressources CPU/RAM par conteneur
- Health checks sur tous les services
- Restart policy :
unless-stopped - Isolation réseau (réseaux Docker dédiés)
- Logging centralisé vers Filebeat
Images applicatives
| Service | Dockerfile dev | Dockerfile prod | Base prod |
|---|---|---|---|
| Backend Go | veza-backend-api/Dockerfile |
Dockerfile.production |
scratch (~15 Mo) |
| Stream Rust | veza-stream-server/Dockerfile |
Dockerfile.production |
debian:bookworm-slim (~100 Mo) |
| Frontend React | apps/web/Dockerfile |
Dockerfile.production |
nginx:latest (~30 Mo) |
Incus
Incus (fork de LXD) est utilisé pour les workloads nécessitant un OS complet :
Configuration :
- Pool de stockage ZFS backing (
zfs create pool/incus) - Profils par type de workload
- Gestion des permissions via groupe
incus-admin - subuid/subgid configurés pour l'isolation
Commandes courantes :
incus launch images:debian/12 mon-conteneur # Créer
incus list # Lister
incus exec mon-conteneur -- bash # Shell
incus project create prod # Projet
incus project switch prod # Changer
Installation documentée dans 04_INFRA_DEPLOIEMENT/Notes_Operations/install_incus.txt.
Stockage et persistance
| Type de données | Stratégie | Backing |
|---|---|---|
| PostgreSQL (WAL + data) | Volume Docker sur SSD | ZFS mirror |
| Redis (RDB + AOF) | Volume Docker sur SSD | ZFS mirror |
| MinIO (audio, fichiers) | Volume Docker sur HDD | ZFS mirror pool (1.8 To) |
| Elasticsearch (indices) | Volume Docker sur HDD 15K | ZFS mirror |
| Backups PITR | Volume dédié sur HDD | ZFS snapshots |
Rôles Ansible associés
| Rôle | Description |
|---|---|
docker |
Installation et configuration Docker |
minio |
Configuration MinIO S3 |
Contenu de ce dossier
docker-compose.yml: stack développementdocker-compose.prod.yml: stack productiondocker-compose.dev.yml: services dev uniquementDockerfiles/: fichiers Docker par serviceincus-profiles/: profils Incus par workloadvolumes/: scripts de montage et backup
Voir aussi
- 04_INFRA_DEPLOIEMENT/Architecture_Serveurs/ARCHITECTURE_INFRA — Allocation stockage et topologie
- 04_INFRA_DEPLOIEMENT/CI_CD/PROCEDURES_DEPLOIEMENT — Procédures de déploiement
- 03_APPS_&_SERVICES/CONFIGURATION_ENVIRONNEMENT — Variables d'environnement Docker