build: update cicd

This commit is contained in:
2025-11-26 15:32:21 +01:00
parent 0a96abfe9c
commit a55bb9da97
6 changed files with 274 additions and 26 deletions

128
DOCKER.md
View File

@@ -8,8 +8,11 @@ Guide complet pour déployer Notytex avec Docker et Docker Compose.
### Prérequis
- Docker 24.0+ (ou Docker Desktop 4.20+)
- Docker Compose 2.20+
- **Docker** : 24.0+ (ou Docker Desktop 4.20+)
- **Docker Compose** : 2.20+
- **Alternative Podman** : Podman 4.0+ avec podman-compose
> 💡 **Note Podman** : Les Dockerfiles utilisent des images Docker Hub qualifiées (`docker.io/library/*`) pour compatibilité Podman
### Installation en 3 commandes
@@ -92,6 +95,44 @@ python -c "import secrets; print(secrets.token_hex(32))"
---
## 🐋 Utilisation avec Podman
### Pourquoi Podman ?
- **Sans privilèges root** : Exécution en mode utilisateur (rootless)
- **Compatible Docker** : Même syntaxe que docker-compose
- **Plus sécurisé** : Pas de daemon en arrière-plan
### Installation Podman
```bash
# Debian/Ubuntu
sudo apt install podman podman-compose
# Fedora/RHEL
sudo dnf install podman podman-compose
# Arch Linux
sudo pacman -S podman podman-compose
```
### Commandes Podman
```bash
# Remplacer 'docker-compose' par 'podman-compose'
podman-compose up -d
podman-compose logs -f
podman-compose down
# Ou utiliser l'alias podman (compatible Docker CLI)
alias docker=podman
docker-compose up -d
```
> ✅ **Les Dockerfiles sont configurés avec des images qualifiées** (`docker.io/library/*`) pour éviter les erreurs de registre
---
## 🛠️ Commandes Docker
### Démarrage
@@ -377,20 +418,93 @@ docker-compose up -d --build
## 📦 Multi-environnements
### Développement
### Développement (Build Local)
```bash
# Utiliser docker-compose.dev.yml
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up
# Build et exécution locale (par défaut)
docker-compose up -d --build
# Avec Podman
podman-compose up -d --build
```
### Production
### Production (Images du Registre)
```bash
# Utiliser docker-compose.prod.yml
# Configurer les variables d'environnement pour votre registre
export REGISTRY_URL=registry.example.com # Votre registre Docker
export REGISTRY_NAMESPACE=myorganization # Votre namespace/organisation
export IMAGE_TAG=latest # Ou version spécifique (v2.0.0)
# Démarrer avec les images du registre
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
# Ou avec Podman
podman-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
```
**Exemples de registres** :
- **Gitea** : `registry.example.com/namespace/notytex-backend:latest`
- **GitHub** : `ghcr.io/username/notytex-backend:latest`
- **Docker Hub** : `docker.io/username/notytex-backend:latest`
- **GitLab** : `registry.gitlab.com/username/notytex-backend:latest`
> 💡 Les images peuvent être construites automatiquement par CI/CD (Gitea Actions, GitHub Actions, GitLab CI)
---
## 🔄 CI/CD - Images du Registre
### Configuration CI/CD
Le fichier `.gitea/workflows/docker-publish.yml` configure la construction automatique des images Docker.
**Déclencheurs** :
- Push sur `main` ou `rewrite`
- Tags `v*` (releases)
- Déclenchement manuel
**Variables requises (Secrets Gitea/GitHub)** :
- `REGISTRY_URL` - URL de votre registre Docker
- `REGISTRY_NAMESPACE` - Namespace/organisation (optionnel, défaut: `lafrite`)
- `REGISTRY_USERNAME` - Nom d'utilisateur pour le registre
- `REGISTRY_PASSWORD` - Mot de passe ou token pour le registre
**Artefacts produits** :
- `<registry>/<namespace>/notytex-backend:latest`
- `<registry>/<namespace>/notytex-backend:<branch>`
- `<registry>/<namespace>/notytex-frontend:latest`
- `<registry>/<namespace>/notytex-frontend:<branch>`
### Utiliser les images du registre
```bash
# 1. Se connecter au registre (si privé)
docker login <REGISTRY_URL>
# Ou avec Podman
podman login <REGISTRY_URL>
# 2. Pull des images
docker pull <REGISTRY_URL>/<NAMESPACE>/notytex-backend:latest
docker pull <REGISTRY_URL>/<NAMESPACE>/notytex-frontend:latest
# 3. Configurer les variables
export REGISTRY_URL=registry.example.com
export REGISTRY_NAMESPACE=myorg
export IMAGE_TAG=latest
# 4. Démarrer avec docker-compose.prod.yml
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
```
### Avantages des images pré-construites
**Déploiement rapide** : Pas de compilation sur le serveur
**Reproductibilité** : Même image en dev/staging/prod
**Multi-architecture** : Support AMD64 et ARM64
**Cache optimisé** : Build incrémental via GitHub Actions cache
**Versioning** : Tags par branche et version
---
## 🎯 Performances