Files
home_hub/Consigne d'utilisation du Registry OCI Gitea.md
T
2026-05-30 10:16:16 +02:00

261 lines
3.7 KiB
Markdown

# Consigne d'utilisation du Registry OCI Gitea
## Objectif
Toutes les images Docker finales d'un projet doivent être stockées dans le registre OCI privé de Gitea afin de centraliser :
- le code source ;
- les versions applicatives ;
- les images Docker ;
- les déploiements ;
- l'historique des versions.
Le registre OCI officiel à utiliser est :
```text
git.maison43gil.com
```
---
# Règle générale
Une image Docker finale ne doit jamais être publiée sur :
- Docker Hub ;
- GitHub Container Registry ;
- Quay ;
- GitLab Registry ;
- tout autre registre externe.
Toutes les images doivent être publiées sur :
```text
git.maison43gil.com
```
---
# Convention de nommage
Le nom de l'image doit correspondre au nom du dépôt Git.
Exemple :
```text
Dépôt Git :
home_hub
Image OCI :
git.maison43gil.com/gilles/home_hub:latest
```
Autres exemples :
```text
git.maison43gil.com/gilles/design_system:latest
git.maison43gil.com/gilles/nano_metrics:latest
git.maison43gil.com/gilles/esp_jardin:latest
git.maison43gil.com/gilles/proxmenus:latest
```
---
# Tags à publier
Minimum :
```text
latest
```
Recommandé :
```text
latest
v1.0.0
v1.1.0
v2.0.0
```
Exemple :
```text
git.maison43gil.com/gilles/home_hub:latest
git.maison43gil.com/gilles/home_hub:v1.0.0
```
---
# Structure attendue d'un projet
```text
projet/
├── src/
├── Dockerfile
├── docker-compose.dev.yml
├── docker-compose.deploy.yml
├── README.md
├── .env.example
└── .gitea/
└── workflows/
└── build.yml
```
---
# Dockerfile
Le Dockerfile doit générer une image autonome et prête au déploiement.
L'image finale doit :
- être optimisée ;
- ne contenir que les composants nécessaires ;
- ne pas contenir de secrets ;
- être exécutable sans modification.
---
# Construction de l'image
Exemple :
```bash
docker build \
-t git.maison43gil.com/gilles/home_hub:latest .
```
---
# Publication de l'image
Authentification :
```bash
docker login git.maison43gil.com
```
Publication :
```bash
docker push \
git.maison43gil.com/gilles/home_hub:latest
```
---
# Déploiement
Le fichier de déploiement doit utiliser exclusivement l'image OCI publiée.
Exemple :
```yaml
services:
home_hub:
image: git.maison43gil.com/gilles/home_hub:latest
container_name: home_hub
restart: unless-stopped
```
Le déploiement ne doit pas reconstruire l'image.
Interdiction :
```yaml
build: .
```
dans les fichiers de production.
---
# Séparation développement / production
Développement :
```yaml
build: .
```
autorisé.
Production :
```yaml
image:
```
obligatoire.
Exemple :
```text
docker-compose.dev.yml
```
```yaml
services:
app:
build: .
```
Exemple :
```text
docker-compose.deploy.yml
```
```yaml
services:
app:
image: git.maison43gil.com/gilles/app:latest
```
---
# Processus standard
```text
Développement
Tests
docker build
docker push
Registry OCI Gitea
docker compose pull
docker compose up -d
```
---
# Consigne pour un agent IA
Lorsqu'un projet doit être conteneurisé :
1. Créer un Dockerfile.
2. Construire une image Docker finale.
3. Nommer l'image selon le dépôt Git.
4. Publier l'image dans le registre OCI Gitea.
5. Générer un docker-compose.deploy.yml utilisant uniquement l'image publiée.
6. Ne jamais utiliser Docker Hub comme destination finale.
7. Ne jamais utiliser `build:` dans les fichiers de production.
8. Toujours privilégier :
```text
git.maison43gil.com/gilles/<nom_du_projet>:latest
```
comme source officielle de déploiement.
Le registre OCI Gitea constitue la source unique de vérité pour toutes les images Docker de production.