Comment déployer rapidement WordPress en tant que conteneur Docker

0
180
monticello/Shutterstock.com

WordPress est le système de gestion de contenu le plus populaire. Il est écrit en PHP, stocke les données dans une base de données MySQL et s'exécute généralement derrière un serveur Web Apache. Ces dépendances ajoutent plusieurs packages à votre système et peuvent être difficiles à maintenir au fil du temps. Voici comment lancer rapidement une installation WordPress conteneurisée à l'aide de l'image Docker officielle.

Mise en route

L'exécution de WordPress dans Docker nécessite deux conteneurs distincts : un conteneur Web, exécutant Apache et PHP, et un conteneur de base de données, hébergeant MySQL. Vous devez également configurer les volumes Docker pour les répertoires de données WordPress. Ceux-ci stockent vos fichiers de configuration et les médias téléchargés afin qu'ils persistent après les redémarrages du conteneur.

Assurez-vous que Docker et Docker Compose sont installés avant de continuer. Bien que vous puissiez utiliser la CLI Docker seule, Compose facilite la définition des deux services, de leurs dépendances et de vos volumes. Vous pourrez afficher toute la pile avec une seule commande.

Base Images

L'image officielle de WordPress Docker est disponible dans de nombreuses saveurs étiquetées différentes. Ceux-ci couvrent le spectre des versions WordPress et PHP disponibles. Si vous utilisez la dernière balise, vous obtiendrez la version actuelle de WordPress avec la dernière version de PHP.

Pour plus de contrôle sur votre déploiement, utilisez une version spécifique de WordPress et PHP. Voici quelques exemples :

  • wordpress:5.7 – WordPress 5.7 avec le dernier PHP.
  • wordpress:php7.4 – PHP 7.4 avec le dernier WordPress.
  • wordpress:5.7-php7.4 – WordPress 5.7 avec PHP 5.4.

Publicité

Une liste exhaustive des balises prises en charge est proposée sur Docker Hub. Outre la prise en charge de l'épinglage de version, des variantes d'image sont également disponibles pour Apache, FPM et Alpine.

Les images sont préconfigurées avec des paramètres par défaut utilisables. Vous pouvez ajouter vos propres paramètres php.ini en copiant un fichier compatible dans le répertoire $PHP_INI_DIR/conf.d dans le conteneur WordPress.

Déploiement de votre pile

Créez un nouveau répertoire pour votre site, puis ajoutez un fichier docker-compose.yml. Collez le contenu suivant :

version : “3” services : wordpress : image : wordpress:5.7-php7.4 redémarrage : sans arrêt ports : – 80 environnement : WORDPRESS_DB_HOST : mysql WORDPRESS_DB_USER : nom d'utilisateur WORDPRESS_DB_PASSWORD : mot de passe WORDPRESS_DB_NAME : volumes wordpress : – wordpress :/var/www/html mysql : image : mysql:5.7 redémarrage : environnement sans arrêt : MYSQL_DATABASE : wordpress MYSQL_USER : nom d'utilisateur MYSQL_PASSWORD : mot de passe MYSQL_RANDOM_ROOT_PASSWORD : "1" volumes: – mysql:/var/lib/mysql volumes: wordpress: mysql:

Ce fichier Compose définit une pile minimale avec les services WordPress et MySQL requis. La connexion à la base de données est configurée à l'aide de variables d'environnement. Vous devez modifier le nom d'utilisateur et le mot de passe de la base de données pour sécuriser vos propres valeurs. N'oubliez pas d'appliquer les modifications aux deux définitions de service.

Les services sont configurés pour redémarrer automatiquement à moins qu'ils n'aient été arrêtés manuellement. Cela garantit que votre site revient automatiquement lorsque vous redémarrez le système hôte.

L'ensemble du répertoire d'installation de WordPress est monté dans un volume. L'utilisation de cette approche garantit que tout votre contenu WordPress est conservé en dehors du conteneur, y compris la configuration, les thèmes, les plugins et les téléchargements. Il vous permet également d'utiliser l'auto-mise à jour WordPress à partir du panneau d'administration. Si vous n'avez monté que les répertoires de données dans un volume, toutes les modifications de source appliquées par l'auto-mise à jour seraient perdues après un redémarrage du conteneur.

Publicité

Déployez la pile en exécutant docker-compose up -d . Vous pourrez vous connecter à WordPress en visitant http://localhost dans votre navigateur. Si vous voyez une “erreur lors de l'établissement de la connexion à la base de données” message, attendez quelques instants avant de réessayer. Le provisionnement de la base de données à la première exécution peut prendre plusieurs secondes.

Cliquez sur l'assistant de configuration WordPress standard pour configurer votre site. Vous devrez configurer un compte utilisateur administrateur initial. Ces informations d'identification doivent être différentes de celles de votre base de données MySQL. Le formulaire de connexion WordPress apparaîtra lorsque vous aurez terminé. Utilisez votre nouveau compte administrateur pour vous connecter au tableau de bord administrateur.

Étapes suivantes

Votre installation WordPress est maintenant prête à être utilisée. Ajoutez des articles, des pages, des thèmes et des plugins à l'aide de l'interface d'administration, tout comme une installation WordPress sans système d'exploitation.

Il est recommandé de suivre certaines étapes de base de renforcement de la sécurité pour réduire le risque d'attaque de votre site . Vous devez également vous assurer que vous disposez d'une routine de sauvegarde. Cela devra couvrir la base de données MySQL et votre répertoire de téléchargement WordPress, wp-content.

Configuration avec Docker Secrets

L'utilisation de variables d'environnement pour la configuration est adéquate pour une utilisation locale. Les secrets Docker sont également pris en charge, vous offrant plus de sécurité dans les environnements auxquels d'autres collaborateurs peuvent accéder. Définissez des secrets dans votre fichier Compose et remplacez des variables telles que WORDPRESS_DB_PASSWORD par WORDPRESS_DB_PASSWORD_FILE. WordPress chargera la valeur de la variable à partir du fichier secret que Docker injecte.

services : wordpress : environnement : WORDPRESS_DB_PASSWORD_FILE : /run/secrets/WORDPRESS_DB_PASSWORD secrets : – WORDPRESS_DB_PASSWORD secrets : WORDPRESS_DB_PASSWORD : fichier : ./db_password

Ajoutez votre mot de passe au fichier db_password dans votre répertoire de travail. Il sera accessible en tant que /run/secrets/WORDPRESS_DB_PASSWORD dans le conteneur. WordPress est chargé de lire ce fichier pour déterminer le mot de passe final de la base de données.

Ajouter votre propre site

Les étapes ci-dessus aboutissent à une nouvelle installation de WordPress prête à être configurée de manière interactive via le centre d'administration. Vous pouvez approvisionner votre conteneur avec un ensemble de thèmes et de plugins par défaut en les montant dans les répertoires /var/www/html/wp-content/themes et /var/www/html/wp-content/plugins.

Cette technique vous aide également à créer une image Docker personnalisée pour votre site. Utilisez l'image WordPress officielle comme base et copiez les actifs de votre site dans les répertoires appropriés. Voici un exemple de présentation d'un thème personnalisé sous forme d'image prête à l'emploi :

DE wordpress:5.7-php7.4-apache COPY ./theme//var/www/html/wp-content/themes/example-theme/

Votre thème sera disponible dans chaque conteneur que vous démarrez. Cependant, cette méthode n'active pas automatiquement le thème. Pour cela, vous aurez besoin d'un troisième service utilisant l'image WordPress CLI.

services : wpcli : image : wordpress:cli-2-php7.4 environnement : WORDPRESS_DB_HOST : mysql WORDPRESS_DB_USER : nom d'utilisateur WORDPRESS_DB_PASSWORD : mot de passe WORDPRESS_DB_NAME : wordpress volumes_from: – wordpress:rw

Le conteneur CLI a besoin d'accéder aux variables d'environnement et aux volumes mis à la disposition du conteneur Web standard. Les variables d'environnement doivent être dupliquées, sauf si vous les extrayez dans une section YAML réutilisable, alors que les volumes peuvent être montés à l'aide de volumes_from.

Maintenant, vous pouvez utiliser Docker Compose pour terminer l'installation de WordPress et activer votre thème :

docker-compose exécute wpcli core install –title=”Mon site” –admin_user=admin –admin_password=changeme –admin_email=me@example.com –url=localhost –allow-root docker-compose exécute le thème wpcli activate example-theme –allow-root

Ces étapes peuvent être automatisées dans le cadre de votre processus de création d'image ou d'un pipeline CI. Vous pouvez valider le conteneur final pour créer une image autonome de votre site, prête pour une utilisation ultérieure.

Conclusion

Utiliser WordPress avec Docker évite de polluer votre machine hôte et vous aide à conteneuriser votre site et sa configuration. Définir vos services en tant que fichier Docker Compose vous permet de créer rapidement de nouvelles instances et d'aider les collaborateurs à démarrer.

Publicité

Une fois que votre pile est en ligne, la maintenance continue est similaire à une installation WordPress régulière. Gardez WordPress, vos plugins et vos thèmes à jour et vérifiez de manière proactive les problèmes de sécurité.

Une tâche d'entretien spécifique à Docker consiste à mettre à jour l'image de base de WordPress. Il est recommandé de récupérer périodiquement la dernière image afin de ne manquer aucun correctif important du système d'exploitation. Exécutez docker-compose up -d –pull pour extraire l'image et redémarrer vos services.