I. Pourquoi ?▲
Les conteneurs Docker sont idéals pour l'hébergement des sites Wordpress pour trois raisons : les images officielles, les volumes et la scalabilité.
- L'image officielle de WordPress : WordPress maintient l'image docker de WordPress sur le hub docker. Ceci est une image officielle afin que vous puissiez être sûr qu'elle est stable et correctement configurée.
- Les Volumes Docker : les volumes sont utilisés comme stockage de fichiers persistants. Nous utilisons des volumes comme un système de fichiers pour WordPress. Si vous arrêtez, redémarrez ou même supprimez votre conteneur WordPress, le volume persistera. Cela nous permet d'enregistrer des médias et d'installer des plugins/thèmes directement sur le volume. L'utilisation de volumes facilite également la migration et la mise à niveau de votre site WordPress.
- La scalabilité : avec les conteneurs Docker de Bluemix, vous pouvez augmenter la mémoire de vos conteneurs et le nombre de processeurs. Vous pouvez également créer un cluster de conteneurs identiques pour héberger votre site. C'est idéal pour l'équilibrage de charge ! Nous avons également l'avantage supplémentaire d'être capable d'étendre les capacités des services de base de données indépendamment de l'application. Votre base de données WordPress peut provenir de n'importe quel service MySQL du catalogue Bluemix. (Ce tutoriel utilisera clearDB.)
II. Comment ? ▲
Ce tutoriel suppose que vous avez déjà installé le plugin IBM Bluemix Container Service bx ic et le CLI (Command-Line Interface ou interface en ligne de commande) Docker. Pour avoir les instructions sur l'installation des CLI, reportez-vous à la documentation bluemix. Les trois premières étapes sont faites avec Docker et les CLI bx ic.
Étape 1 : récupérez localement l'image officielle.
$
docker pull ibmjstart/bluemix-wordpress
Étape 2 : marquez l'image wordpress comme un élément à déplacer dans votre registre bluemix.
Vous devrez remplacer [namespace] par votre espace de noms.
$
docker tag ibmjstart/bluemix-wordpress registry.ng.bluemix.net/[namespace]/wordpress
Étape 3 : remonter [namespace]/wordpress dans votre registre.
$
docker push registry.ng.bluemix.net/[namespace]/wordpress
Vous devrez peut-être utiliser "bx ic login" avant de remonter dans votre registre bluemix.
Étape 4 : créez le volume qui servira de système de fichiers WordPress.
$
bx ic volume create [Volume Name]
Vous pouvez nommer le volume comme vous voulez, mais n'oubliez pas ce nom lorsque vous exécutez le conteneur à l'étape 6.
Étape 5 : créer un service MySQL.
Laissez la priorité à Bluemix pour le reste du tutoriel. Dans Bluemix, vous devrez créer une nouvelle application pour la lier à une base de données MySQL. Je recommande d'utiliser le SDK pour node.js runtime à partir du catalogue.
Allez-y et créez-le :
Assurez-vous de choisir un nom unique pour votre application. Une fois que celle-ci est en cours d'exécution, créez une instance de service MySQL dans le catalogue :
Enfin, assurez-vous de la lier à l'application node.js que nous venons de créer. Cela se fait dans la section App.
Étape 6 : exécutez le conteneur avec l'image wordpress.
Allez sur votre tableau de bord et sélectionnez Démarrer conteneurs :
Ensuite vous verrez ceci (votre image de wordpress devrait être affichée) :
Cliquez sur l'image wordpress. Cela vous amènera à la page suivante. Il y a quelques détails sur cette page que vous devez bien comprendre :
- Assurez-vous que vous êtes sous l'onglet « scalable group » (Important ! Qui veut dire groupe extensible) ;
- Donnez à votre groupe de conteneurs un nom unique ;
- Choisissez mybluemix.net comme domaine de routage ;
- Choisissez autant d'instances que vous le souhaitez (une devrait être suffisante) ;
- Choisissez un nom d'hôte unique ;
- Ouvrez le port HTTP 80 (très important) ;
- Cliquez sur « Advanced options » pour options avancées ;
- Sélectionnez le volume que vous avez créé à l'étape 4 dans la liste déroulante. Définissez le chemin de montage sur « /var/www/html » ;
- Liez l'application de liaison que nous avons faite à l'étape 5 en sélectionnant « bridge app » pour application de liaison dans la liste déroulante.
Le reste peut être laissé par défaut.
Et cliquez sur « create » pour la création.
Étape 7 : « Bonjour WordPress »
Consultez votre page en utilisant l'URL [Hostname].mybluemix.net que vous avez sélectionnée à l'étape 5 (note : l'opération peut prendre quelques minutes pour se déployer, donc soyez patient). Votre page devrait ressembler à ceci :
Vous devriez maintenant avoir une installation WordPress entièrement fonctionnelle sur les conteneurs ! Exécutez-la à travers l'assistant et vous serez prêt à foncer. Si vous souhaitez en savoir plus sur la façon dont notre image wordpress fonctionne, vous pouvez lire ceci.
III. Configuration du courrier électronique dans votre conteneur WordPress (facultatif)▲
Le conteneur ne dispose pas d'une configuration de serveur SMTP, alors la fonctionnalité de messagerie WordPress ne fonctionnera pas. Nous pouvons utiliser le plugin SendGrid pour remédier à cela.
Étape 0 : créez un service SendGrid dans Bluemix. Liez-le à votre application MyDB.
SendGrid peut être trouvé dans le catalogue. Voici à quoi ressemble le tableau de bord de votre application quand vous avez lié avec succès votre instance de service SendGrid.
Étape 2 : définir les informations d'identification.
Allez dans Plugins > Installed Plugins > SendGrid Settings (pour Plugins > Plugins installés> Paramètres SendGrid)
Une fois là, renseigner les informations d'identification.
Vous pouvez retrouver les informations d'identification sur votre tableau de bord. Sur cet écran cliquez sur « Show Credentials », pour « Afficher les informations d'identification » sous le logo SendGrid.
Remplissez toutes les informations et enregistrez. Vous pouvez essayer d'envoyer un mail de test sur cette même page. Si le mail est correctement envoyé, votre installation WordPress est terminée !
Pour tester les fonctionnalités de Bluemix présentées dans ce tutoriel, vous devez commencer par créer un compte gratuitement sur Bluemix.
Note de la rédaction Developpez.com▲
Nous remercions Miguel Clément pour l'autorisation de la publication de ce tutoriel.
Nos remerciements également à Laethy pour la traduction et Jacques Jean pour la relecture orthographique.