Aller au contenu principal

Déployer une image Docker existante

La plupart des applications sur Kuploy sont construites depuis les sources (Git → Nixpacks, Dockerfile ou Buildpacks — voir Méthodes de build). Mais si vous disposez déjà d'une image dans un registre, public ou privé, vous pouvez l'exécuter telle quelle avec le fournisseur Docker. Aucun build n'a lieu : le cluster récupère l'image et la lance en l'état.

C'est la bonne approche quand :

  • votre chaîne d'intégration construit et publie déjà l'image, et vous voulez simplement que Kuploy l'exécute ;
  • vous déployez une image tierce, prête à l'emploi ;
  • vous relancez une image déjà éprouvée, sans la reconstruire.

Marche à suivre​

1. Créer l'application​

Dans l'environnement de votre projet, faites Create Service → Application. Donnez-lui un nom.

2. Choisir le fournisseur Docker​

Dans l'onglet General de l'application, sous Provider, choisissez Docker et renseignez :

  • Docker Image — la référence complète de l'image, par exemple registry.example.com/team/app:1.4.0.
    • Une image sans tag équivaut à :latest, que Kubernetes retélécharge à chaque déploiement. Taguez vos images (:1.4.0, un SHA de commit…) pour des déploiements reproductibles.

Cliquez sur Save.

3. Identifiants d'un registre privé​

Si l'image est privée, c'est le nœud du cluster qui a besoin des identifiants pour la récupérer. Kuploy les monte sous forme d'imagePullSecret Kubernetes, à partir d'une entrée Registry — et non des champs de l'onglet Provider.

  1. Settings → Registry → Add Registry :
    • Registry URL — le nom d'hôte seul, par exemple registry.example.com
    • Username / Password — vos identifiants de registre. Les comptes robots Harbor ressemblent à robot$team+ci : collez le nom d'utilisateur tel quel (le $ fait partie du nom ; la plateforme se charge de l'échappement).
  2. Sur l'application : Advanced → Build Registry → sélectionnez votre registre → Save.

Sans cela, une image privée ne peut pas être récupérée et le pod signale ImagePullBackOff.

4. Indiquer le port du conteneur​

Dans l'onglet Domains, ajoutez votre domaine et renseignez Container Port avec le port sur lequel votre application écoute à l'intérieur du conteneur (par exemple 80 pour nginx, 3000 pour Node, 8080 pour Java). C'est vers ce port que Kuploy dirige le Service et l'Ingress. Activez HTTPS pour obtenir automatiquement un certificat Let's Encrypt.

5. Variables d'environnement​

Ajoutez la configuration d'exécution dans l'onglet Environment (URL de base de données, clés d'API, etc.). Voir Variables d'environnement.

6. Déployer​

Cliquez sur Deploy dans l'onglet General. Kuploy met en place un Deployment qui exécute votre image — le nœud la récupère, avec les identifiants du registre si elle est privée. Suivez l'avancement dans les onglets Deployments et Logs.

Dépannage​

SymptômeCauseSolution
Pod en ImagePullBackOffIdentifiants de registre absents ou erronésCréez une entrée Registry et sélectionnez-la comme Build Registry de l'application (étape 3). Vérifiez avec kubectl -n project-<nom> describe pod <pod>.
unauthorized / denied au téléchargementLe compte robot n'a pas le droit de lecture sur le dépôt, ou le mot de passe est fauxVérifiez les permissions du compte robot sur le projet dans votre registre, puis ressaisissez le mot de passe.
Les déploiements récupèrent une ancienne imageL'image est sans tag (:latest) et en cache, ou le tag a été écraséUtilisez des tags immuables, puis redéployez.
L'application renvoie 502 ou 504Mauvais Container PortRenseignez le port réellement écouté par l'application (étape 4).