Ajouter et configurer un site web basé sur un conteneur Docker dans ServBay
ServBay est un environnement de développement web local conçu spécifiquement pour macOS, prenant en charge de nombreux langages et technologies. Outre l'utilisation des paquets intégrés de ServBay (tels que PHP, Node.js, Python, Go, Java, bases de données, etc.) pour héberger vos sites, vous pouvez également exploiter des conteneurs Docker pour exécuter et gérer vos applications ou services. Cette approche offre une flexibilité maximale, une isolation de l'environnement et une grande cohérence, ce qui est idéal pour les projets exigeant des dépendances ou des environnements spécifiques.
Cet article détaille la procédure d’ajout d’un site web exécuté dans un conteneur Docker à ServBay, en l'intégrant à votre processus de développement local via la fonctionnalité de proxy inverse de ServBay.
Vue d’ensemble
En configurant ServBay comme proxy inverse, vous pouvez rediriger des requêtes de domaines spécifiques vers des ports de services tournant à l’intérieur d’un conteneur Docker. ServBay gère le trafic entrant (certificats HTTPS, résolution de domaine, etc.), tandis que le conteneur Docker exécute votre application. Cette configuration combine la simplicité de l’interface de gestion de ServBay avec la puissance de la containerisation Docker.
Les étapes ci-dessous vous guideront dans l’ajout et la configuration complète d’un site alimenté par un service Docker dans ServBay.
Prérequis
Avant de commencer, assurez-vous de remplir les conditions suivantes :
- ServBay installé et en cours d’exécution : ServBay est correctement installé et lancé sur votre machine macOS.
- Docker installé et opérationnel : Docker Desktop ou tout autre environnement Docker est installé sur macOS et le service Docker fonctionne.
- Image et conteneur Docker prêts : Vous avez déjà construit ou téléchargé l’image Docker contenant votre site ou application, et pouvez lancer un conteneur à partir de celle-ci.
Étapes détaillées pour ajouter un site web
Étape 1 : Préparer et lancer le conteneur Docker
Commencez par vérifier que votre conteneur Docker est en cours de fonctionnement et que le service interne (par exemple, le serveur web) écoute sur un port exposé à l’hôte macOS via la fonction de mapping de ports de Docker.
Par exemple, si vous disposez d’un conteneur Nginx simple où le serveur Nginx interne écoute sur le port 80, vous pouvez mapper le port 8080 de la machine hôte vers le port 80 du conteneur avec la commande suivante :
docker run -d --name my-nginx-servbay -p 8080:80 nginx
Dans cet exemple, le service Nginx du conteneur my-nginx-servbay
écoute en interne sur le port 80
, mais grâce au paramètre -p 8080:80
, le port 80
du conteneur est exposé sur le port 8080
de la machine hôte. ServBay devra se connecter à ce port 8080
local.
En fonction de votre application et de votre Dockerfile, veillez à ce que les services internes du conteneur écoutent sur le bon port et que ce port soit bien mappé sur un port disponible de l’hôte.
Étape 2 : Ouvrir l’interface de gestion ServBay
Dans votre dossier Applications sur macOS, repérez l’icône de l’application ServBay
et double-cliquez pour ouvrir l’interface de gestion de ServBay.
Étape 3 : Accéder à la page de gestion des sites web
Une fois ServBay ouvert, vous verrez l’interface principale. Dans le menu de navigation à gauche, trouvez et cliquez sur l’option Sites
. Cela vous amène à la page de gestion des sites, où vous pouvez consulter et configurer tous les sites locaux déjà ajoutés.
Illustration : Cliquez sur « Sites » dans la barre latérale pour accéder à la gestion des sites.
Étape 4 : Ajouter un nouveau site
En bas de la page de gestion des sites, vous verrez un bouton +
. Cliquez sur ce bouton : ServBay affichera alors un nouveau formulaire à droite, dans lequel vous pourrez saisir les informations de configuration du nouveau site web.
Illustration : Cliquez sur le bouton « + » en bas pour ajouter un site web.
Étape 5 : Configurer les paramètres du site
Dans le formulaire qui s’ouvre, renseignez les informations clés suivantes :
- Nom (Name) : Donnez un nom facilement reconnaissable à votre site, comme
Docker Nginx Demo
. Ce nom est utilisé uniquement pour la gestion interne dans ServBay. - Domaine (Domain) : Indiquez le nom de domaine local souhaité pour accéder à ce site dans le navigateur. Il est recommandé d’utiliser le suffixe
.servbay.demo
pour éviter les conflits avec des domaines publics, par exempledocker.servbay.demo
. ServBay configurera automatiquement le fichier hosts de votre système pour faire pointer ce domaine vers127.0.0.1
. - Protocole (Protocol) : Sélectionnez le protocole supporté. Par défaut, laissez
HTTP/HTTPS
. ServBay écoutera simultanément les ports HTTP (80) et HTTPS (443), et gérera l’accès sécurisé selon vos réglages SSL. - Méthode de demande du certificat SSL (SSL Certificate Request Method) : Il est conseillé de choisir
ServBay CA
. ServBay générera et gérera alors automatiquement un certificat SSL localement reconnu, signé par la ServBay User CA. En installant la ServBay Public CA dans votre trousseau système, vous permettrez à votre navigateur de faire confiance à ces certificats locaux, rendant le développement et les tests en HTTPS plus aisés. Si besoin, vous pouvez aussi choisirACME
(Let’s Encrypt) ouCustom
(certificat personnel). - Type de site (Website Type) : [Clé] Sélectionnez
Proxy inverse (Reverse Proxy)
. Cela indique que ServBay sera le point d’entrée pour le domaine et transférera les requêtes vers le service backend que vous préciserez. - Adresse IP (IP Address) : Saisissez l’adresse IP sur laquelle le service du conteneur Docker écoute sur la machine hôte. Pour la plupart des configurations locales Docker, il s’agit de l’adresse de loopback
127.0.0.1
. - Port (Port) : Saisissez le port sur l’hôte qui a été exposé par votre conteneur Docker. Cela correspond au
<port hôte>
défini dans la commandedocker run -p <port hôte>:<port conteneur>
. Par exemple, si vous avez utilisé-p 8080:80
, indiquez ici8080
.
Illustration : Saisir les informations de configuration du proxy inverse Docker.
Étape 6 : Finaliser et sauvegarder la configuration
Après avoir complété tous les champs requis, cliquez sur le bouton Ajouter (Add)
au bas du formulaire.
ServBay traitera votre demande, ajoutera automatiquement la règle de proxy inverse appropriée à la configuration de son serveur web (par exemple Caddy ou Nginx), et mettra à jour le fichier hosts du système pour pointer le domaine local choisi vers votre machine.
Une fois la sauvegarde réussie, ServBay appliquera brièvement la nouvelle configuration, puis vous pourrez tester l'accès à votre nouveau domaine local.
Étape 7 : Accéder au site web et utiliser les actions rapides
Une fois la configuration enregistrée, retournez à la page de gestion des sites web. La nouvelle entrée doit apparaître, avec le statut « En fonctionnement ».
Vous pouvez désormais accéder à votre site via le domaine configuré dans le navigateur (par exemple, http://docker.servbay.demo
ou https://docker.servbay.demo
). Si tout est bien configuré, ServBay transférera vos requêtes vers le conteneur Docker et affichera le contenu web fourni par ce dernier.
Sur chaque ligne de site web, ServBay propose diverses actions rapides, notamment :
- Ouvrir le répertoire racine du site avec un IDE : (Pour les sites de type proxy inverse, ce bouton peut pointer vers le dossier de configuration ou ne pas être pertinent. Cela dépend de la version et de la configuration de ServBay.)
- Ouvrir le site dans le navigateur : Lancer rapidement l’URL du site dans un nouvel onglet.
- Voir les logs du site : Accéder aux logs d’accès et d’erreurs pour ce site, pratique pour le débogage.
- Suspendre ou activer le site : Désactiver ou réactiver temporairement la configuration de proxy inverse de ce site.
- Supprimer le site : Retirer la configuration du site de ServBay.
Illustration : Actions rapides disponibles sur chaque site dans la liste ServBay.
Conseils et bonnes pratiques
- État du conteneur Docker : Veillez à ce que le conteneur cible soit en fonctionnement, sans quoi ServBay ne pourra pas transférer les requêtes.
- Mappage des ports : Vérifiez minutieusement la correspondance entre le port exposé par Docker (
-p
) et celui renseigné dans la configuration de ServBay. Assurez-vous également que ce port n'est pas déjà utilisé par un autre service sur la machine hôte. - Pare-feu : Contrôlez les paramètres du pare-feu macOS afin que les ports utilisés par ServBay (80, 443 par défaut) ainsi que ceux exposés par Docker soient accessibles.
- Mode réseau Docker : En général, privilégiez le mode réseau
bridge
avec port mapping via-p
, car c’est la méthode la plus simple. Si vous utilisez le modehost
, ServBay pourra accéder directement au port écouté par le conteneur. Attention cependant aux conflits possibles sur les ports avec ce mode. - ServBay CA : Pour faciliter le développement HTTPS, il est fortement recommandé d’installer la ServBay Public CA. Cela permet à votre navigateur de faire confiance aux certificats SSL générés localement par ServBay et d’éviter les avertissements de sécurité pendant le développement.
FAQ et dépannage
Q : Impossible d’accéder au site ajouté, erreur de connexion ou délai dépassé dans le navigateur ?
A : Procédez aux vérifications suivantes :
- État du site sur ServBay : Dans la gestion des sites ServBay, vérifiez que le statut du site est « En fonctionnement ».
- État du conteneur Docker : Exécutez la commande
docker ps
dans le terminal pour vous assurer que le conteneur désiré fonctionne. - Mappage des ports du conteneur : Lancez
docker ps
et vérifiez la colonnePORTS
pour confirmer le port de l’hôte (ex :0.0.0.0:8080->80/tcp
ou127.0.0.1:8080->80/tcp
; ici,8080
doit correspondre à la configuration ServBay). - Service interne du conteneur Docker : Vérifiez que le serveur web du conteneur (Nginx, Apache, Node, etc.) écoute sur le port correct et ne rencontre pas d’erreurs. Consultez les logs du conteneur avec
docker logs <ID ou nom du conteneur>
. - Logs de ServBay : En cliquant sur l’icône de logs du site dans ServBay, vérifiez les logs d’accès et d’erreur qui peuvent contenir des détails sur l’échec du proxy.
- Fichier hosts du système : Bien que ServBay gère cela automatiquement, vérifiez manuellement le fichier
/etc/hosts
et assurez-vous que le domaine pointe bien vers127.0.0.1
. - Pare-feu : Assurez-vous que le pare-feu ne bloque pas l’accès aux ports utilisés, tant par ServBay que par les ports exposés du conteneur Docker.
Q : Puis-je gérer les conteneurs Docker directement via ServBay ?
R : ServBay se concentre sur la gestion des services web locaux, bases de données et environnements de programmation, et sur l’orchestration du routage du trafic vers les services backend (y compris les Docker). Il ne propose pas de gestion complète du cycle de vie des conteneurs Docker (démarrage, arrêt, build d’image, etc.). Pour cela, continuez d’utiliser les outils en ligne de commande Docker ou l’interface Docker Desktop.
Q : Qu’est-ce que la ServBay CA et pourquoi l’installer ?
R : La ServBay CA (autorité de certification) est le mécanisme de gestion des certificats développé par ServBay pour simplifier le développement HTTPS en local. La User CA de ServBay signe les certificats SSL de vos sites locaux, et la ServBay Public CA est son certificat racine. En installant la ServBay Public CA dans votre trousseau système, votre système et votre navigateur feront confiance à tous les certificats signés par la User CA, éliminant ainsi les avertissements de connexion non sécurisée lors de leurs accès en HTTPS. C’est indispensable pour simuler fidèlement un environnement de production lors du développement local.
Conclusion
Ajouter un site web basé sur un conteneur Docker dans ServBay est une méthode efficace et flexible. ServBay agit comme un hub central pour le développement local, gérant le trafic et les domaines, tandis que Docker fournit un environnement isolé pour faire tourner vos applications. Grâce à quelques simples réglages de proxy inverse, vous pouvez intégrer en toute simplicité vos projets Dockerisés dans votre workflow ServBay. En suivant les étapes et conseils de cet article, vous pourrez facilement configurer et exécuter vos sites web Docker locaux.