Construire une fois, déployer partout

Une image est construite une seule fois, par la CI, et c'est cette même image qui va dans chaque environnement et sur chaque serveur. Les serveurs la tirent ; ils ne la construisent jamais.

Comment ça marche

La chaîne de CI construit et teste une image, la pousse sous une version, et le fichier Compose de chaque environnement nomme cette version avec image:. Ce qui change d'un environnement à l'autre vient de variables et de fichiers au lancement, pas d'un nouveau build.

Ce qui casse

Construire sur le serveur (docker compose up --build en production) y demande le code source et les outils de build, prend du CPU au service en ligne, et peut produire une autre image que celle testée : une plage de dépendances résolue autrement, une image de base plus récente. Garde build: pour le développement et la CI ; les fichiers de production utilisent image:.

Dans compose.yaml

services:
  api:
    image: registry.shop.internal/shop/api:1.4.0
  worker:
    image: registry.shop.internal/shop/worker:1.4.0

Regarde-le casser, puis répare-le

Écris le Dockerfile ou le fichier compose, tape les commandes docker, et regarde un serveur simulé les exécuter à travers redémarrages, mises à jour et trafic. Gratuit pour commencer.