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

3.7 KiB

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 :

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 :

git.maison43gil.com

Convention de nommage

Le nom de l'image doit correspondre au nom du dépôt Git.

Exemple :

Dépôt Git :
home_hub

Image OCI :
git.maison43gil.com/gilles/home_hub:latest

Autres exemples :

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 :

latest

Recommandé :

latest
v1.0.0
v1.1.0
v2.0.0

Exemple :

git.maison43gil.com/gilles/home_hub:latest
git.maison43gil.com/gilles/home_hub:v1.0.0

Structure attendue d'un projet

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 :

docker build \
-t git.maison43gil.com/gilles/home_hub:latest .

Publication de l'image

Authentification :

docker login git.maison43gil.com

Publication :

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 :

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 :

build: .

dans les fichiers de production.


Séparation développement / production

Développement :

build: .

autorisé.

Production :

image:

obligatoire.

Exemple :

docker-compose.dev.yml
services:
  app:
    build: .

Exemple :

docker-compose.deploy.yml
services:
  app:
    image: git.maison43gil.com/gilles/app:latest

Processus standard

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 :
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.