build: update cicd
This commit is contained in:
128
DOCKER.md
128
DOCKER.md
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user