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.
- Une image sans tag équivaut à
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.
- 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).
- Registry URL — le nom d'hôte seul, par exemple
- 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ôme | Cause | Solution |
|---|---|---|
Pod en ImagePullBackOff | Identifiants de registre absents ou erronés | Cré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échargement | Le compte robot n'a pas le droit de lecture sur le dépôt, ou le mot de passe est faux | Vé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 image | L'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 504 | Mauvais Container Port | Renseignez le port réellement écouté par l'application (étape 4). |