Cet article montre un exemple de fichiers de configuration de WordPress Docker pour le développement local sous Windows, MAC ou Ubuntu.
Le kit d’installation et les fichiers de configuration incluent les éléments suivants:
- Fichiers WordPress
- MariaDB/MySQL utilisé pour la base de données WordPress
- Interface phpMyAdmin pour se connecter à votre base de données MySQL
- WP-Cli : Interface de ligne de commande WordPress
- Directives Makefile pour l’automatisation.
Vous apprendrez:
- Structure du répertoire Docker de WordPress
- Fichiers de configuration docker-compose et WP-Cli
- Installation de WordPress à l’aide de docker-compose
Sommaire:
- Étape 1. Télécharger un modèle de configuration du Docker WordPress
- Étape 2. Inspecter le contenu des fichiers de configuration
- Étape 3. Modifier les variables d’environnement de configuration du Docker WordPress
- Étape 4. Installer WordPress en utilisant docker-compose
- Étape 5. Arrêt et nettoyage
- Résumé
- Références
Étape 1. Télécharger un modèle de configuration du Docker WordPress
Téléchargez un modèle à partir de Github à l’adresse kassambara/wordpress-docker-compose
git clone https://github.com/kassambara/wordpress-docker-compose
cd wordpress-docker-compose
Structure du répertoire de projet:
files/wordpress-docker-compose
├── LICENSE
├── Makefile
├── README.Rmd
├── README.md
├── config
│ └── php.conf.ini
├── docker-compose-onlinehost.yml
├── docker-compose.yml
├── mysql
├── setup-onlinehost.sh
├── wordpress
├── wp-auto-config.yml
└── wpcli
├── Dockerfile
├── Makefile
└── entrypoint.sh
Dossiers essentiels:
- mysql : Fichiers de base de données MySQL pour MariaDB
- wordpress : Fichiers web WordPress
- wpcli contient un exemple de Dockerfile pour construire le CLI de WordPress.
Dossiers essentiels:
- Fichier .env : contient les variables d’environnement requises pour l’installation de wordpress
- docker-compose.yml : docker-compose définissant les services WordPress
- Makefile : Ensemble de lignes de commande bash simples pour construire, installer et configurer WordPress, ainsi que pour démarrer et arrêter les conteneurs dockers.
Étape 2. Inspecter le contenu des fichiers de configuration
Nous allons inspecter les fichiers de configuration suivants:
./docker-compose.yml
: Définit les services docker pour l’exécution de wordpress./wplci/Dockerfile
et./wpcli/Makefile
: Fournit des options en ligne de commande pour manipuler la base de données WordPress- “./Makefile” : Fournit les commandes
make
pour démarrer, installer et auto-installer wordpress.
fichier de configuration docker-compose
Inspecter le contenu du fichier docker-compose.yml
, qui définit 4 services:
- WordPress/PHP
- Base de données MySQL
- Interface phpMyAdmin pour la base de données
- wpcli : interface en ligne de commande WordPress
- healthcheck, qui vérifie si les services (MySQL, wordpress) sont prêts
version: '3.6'
services:
wordpress:
image: wordpress:${WORDPRESS_VERSION:-latest}
container_name: ${COMPOSE_PROJECT_NAME:-wordpress}
volumes:
- ./config/php.conf.ini:/usr/local/etc/php/conf.d/php.ini
- ${WORDPRESS_DATA_DIR:-./wordpress}:/var/www/html
environment:
- WORDPRESS_DB_NAME=${COMPOSE_PROJECT_NAME:-wordpress}
- WORDPRESS_TABLE_PREFIX=${WORDPRESS_TABLE_PREFIX:-wp_}
- WORDPRESS_DB_HOST=${WORDPRESS_DB_HOST:-mysql}
- WORDPRESS_DB_USER=${DATABASE_USER:-root}
- WORDPRESS_DB_PASSWORD=${DATABASE_PASSWORD:-password}
depends_on:
- mysql
- phpmyadmin
restart: always
ports:
- 80:80
mysql:
image: mariadb:${MARIADB_VERSION:-latest}
container_name: ${COMPOSE_PROJECT_NAME}_mysql
volumes:
- ./mysql:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${DATABASE_PASSWORD:-password}
- MYSQL_USER=${DATABASE_USER:-root}
- MYSQL_PASSWORD=${DATABASE_PASSWORD:-password}
- MYSQL_DATABASE=${COMPOSE_PROJECT_NAME:-wordpress}
restart: always
phpmyadmin:
depends_on:
- mysql
image: phpmyadmin/phpmyadmin:${PHPMYADMIN_VERSION:-latest}
container_name: ${COMPOSE_PROJECT_NAME}_phpmyadmin
restart: always
ports:
- ${PHPMYADMIN_PORT}:80
environment:
PMA_HOST: mysql
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-password}
# Interface de ligne de commande pour WordPress
wpcli:
build: ./wpcli/
image: wpcli
container_name: ${COMPOSE_PROJECT_NAME}_wpcli
volumes:
- ${WORDPRESS_DATA_DIR:-./wordpress}:/var/www/html
working_dir: /var/www/html
# Vérifier la disponibilité des services essentiels
healthcheck:
image: wpcli
build: ./wpcli/
container_name: ${COMPOSE_PROJECT_NAME}_healthcheck
command: sh -c "/wait"
environment:
- WAIT_HOSTS=mysql:3306, wordpress:80
- WAIT_BEFORE_HOSTS=${WAIT_BEFORE_HOSTS:-30}
- WAIT_AFTER_HOSTS=${WAIT_AFTER_HOSTS:-15}
- WAIT_HOSTS_TIMEOUT=${WAIT_HOSTS_TIMEOUT:-300}
- WAIT_SLEEP_INTERVAL=${WAIT_SLEEP_INTERVAL:-30}
- WAIT_HOST_CONNECT_TIMEOUT=${WAIT_HOST_CONNECT_TIMEOUT:-30}
Notez que, sous l’application wordpress, nous mappons le ./config/php.conf.ini dans le conteneur de sorte que le PHP récupère nos paramètres de configuration supplémentaires spécifiés ci-dessous. Cela permet d’augmenter la limite de téléchargement.
Contenu de: ./config/php.conf.ini
file_uploads = On
memory_limit = 512M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 600
Notez également que le fichier docker-compose.yml
fourni inclut l’application phpMyAdmin
. Si vous souhaitez utiliser l’interface admirer pour votre base de données, ajoutez les directives suivantes dans votre fichier docker-compose.yml
au lieu des directives phpMyAdmin.
adminer:
image: adminer
restart: always
links:
- mysql
ports:
- 8080:8080
WP Cli Dockerfile et fichier de configuration
Le WordPress cli est construit à partir du fichier docker suivant, qui inclut l’outil [docker-compose-wait tool] (https://www.datanovia.com/en/fr/lessons/forcer-docker-compose-a-attendre-un-conteneur-en-utilisant-loutil-wait/). L’outil wait
permet d’attendre qu’un conteneur soit prêt avant de faire démarrer un autre conteneur. Cela fait attendre à wp-cli que MySQL soit prêt avant de manipuler la base de données.
WP Cli Dockerfile (chemin d’accès : ./wpcli/Dockerfile
):
FROM wordpress:cli
# Installer l'outil make
USER root
RUN apk add --no-cache make
# Faites attendre dockers pour que les dépendances des conteneurs soient prêtes
# Ajouter le script wait à l'image
ENV WAIT_VERSION 2.7.2
ADD https://github.com/ufoscout/docker-compose-wait/releases/download/$WAIT_VERSION/wait /wait
RUN chmod +x /wait
# Ajouter le Makefile au répertoire des scripts
ADD Makefile entrypoint.sh /scripts/
RUN chmod +x /scripts/entrypoint.sh
ENTRYPOINT [ "/scripts/entrypoint.sh" ]
USER 33:33
CMD ["wp", "shell"]
Ce Dockerfile est basé sur wordpress:cli
, installe le docker-compose-wait
et possède un point d’entrée, qui peut soit exécuter WP-cli ou un Makefile.
Notez que les images wordpress:latest
et wpcli
fonctionnent toutes les deux avec l’utilisateur www-data
, mais le problème est que les [utilisateurs individuels de www-data ont des identifiants différents] (https://stackoverflow.com/questions/50999848/how-to-run-wp-cli-in-docker-compose-yml):
- user-id=33 dans wordpress
- user-id=82 dans wpcli
Nous devons nous assurer qu’ils utilisent tous deux le même identifiant. Ce problème peut être résolu en faisant fonctionner le wpcli avec le USER 33:33
dans le Dockerfile.
L’outil WP Cli automatise l’installation de WordPress en utilisant le Makefile suivant (chemin : ./wpcli/Makefile
):
install: configure
configure:
@echo "⚙️ Configuring WordPress parameters..."
wp core install \
--url=${WORDPRESS_WEBSITE_URL_WITHOUT_HTTP} \
--title=$(WORDPRESS_WEBSITE_TITLE) \
--admin_user=${WORDPRESS_ADMIN_USER} \
--admin_password=${WORDPRESS_ADMIN_PASSWORD} \
--admin_email=${WORDPRESS_ADMIN_EMAIL}
wp option update siteurl ${WORDPRESS_WEBSITE_URL}
wp rewrite structure $(WORDPRESS_WEBSITE_POST_URL_STRUCTURE)
En utilisant ce Makefile, l’outil WP-Cli permettra de configurer:
- URL et titre du site web.
- Structure de l’URL.
Faire des commandes pour la configuration automatique de WordPress
Chemin d’accès : ./Makefile
start:
docker-compose up -d --build
healthcheck:
docker-compose run --rm healthcheck
down:
docker-compose down
install: start healthcheck
configure:
docker-compose -f docker-compose.yml -f wp-auto-config.yml run --rm wp-auto-config
autoinstall: start
docker-compose -f docker-compose.yml -f wp-auto-config.yml run --rm wp-auto-config
clean: down
@echo "💥 Removing related folders/files..."
@rm -rf mysql/* wordpress/*
reset: clean
Grâce à ce Makefile, vous pourrez installer et configurer automatiquement wordpress en utilisant make autoinstall
.
Étape 3. Modifier les variables d’environnement de configuration du Docker WordPress
Un fichier .env
a été inclus pour définir facilement les variables d’environnement docker-compose sans avoir à modifier le fichier de configuration docker-compose.yml
lui-même.
Des valeurs par défaut ont été fournies afin de permettre une mise en service rapide à des fins de test. Il appartient à l’utilisateur de les modifier pour les adapter au mieux à ses préférences de déploiement.
Ouvrez le fichier .env
et mettez le contenu à jour si vous le souhaitez. Par exemple, il suffit de changer le nom du projet et votre mot de passe (pour la base de données et wordpress admin).
# Ouvrir le dossier
nano .env
Contenu:
# 1/ Nom de Project -------------------------------------------------
# Doit être en minuscules, sans espaces et sans caractères de chemins invalides.
# Sera également utilisé comme nom de la base de données de WP
COMPOSE_PROJECT_NAME=wordpress
# 2/ Base de données login et mot de passe -----------------------------------------
# Définir un utilisateur de la base de données non root si vous le souhaitez (facultatif)
DATABASE_PASSWORD=password
DATABASE_USER=root
# 3/ Pour l'autoinstallation et l'auto-configuration WordPress-------------------
WORDPRESS_WEBSITE_TITLE="My Blog"
# URL
WORDPRESS_WEBSITE_URL="http://localhost"
WORDPRESS_WEBSITE_URL_WITHOUT_HTTP=localhost
WORDPRESS_WEBSITE_POST_URL_STRUCTURE="/blog/%postname%/"
# Identification de l'administrateur du site web. Précisez un mot de passe fort
WORDPRESS_ADMIN_USER="wordpress"
WORDPRESS_ADMIN_PASSWORD="wordpress"
WORDPRESS_ADMIN_EMAIL="your-email@example.com"
# 4/ Versions des logiciels-----------------------------------------------
WORDPRESS_VERSION=latest
MARIADB_VERSION=latest
PHPMYADMIN_VERSION=latest
# 5/ Ports: Peut être changés -------------------------------------------
PHPMYADMIN_PORT=8080
# 6/ Volumes sur l'hôte--------------------------------------------------
WORDPRESS_DATA_DIR=./wordpress
# 7/ Vérification de la disponibilité des services d'hébergement (serveur mysql et woordpress)
# Temps d'attente en seconde
WAIT_BEFORE_HOSTS=5
WAIT_AFTER_HOSTS=5
WAIT_HOSTS_TIMEOUT=300
WAIT_SLEEP_INTERVAL=60
WAIT_HOST_CONNECT_TIMEOUT=5
# 8/ Utilisé seulement pour le déploiement en ligne --------------------------------------
WORDPRESS_WEBSITE_URL_WITHOUT_WWW=example.com
PHPMYADMIN_WEBSITE_URL_WITHOUT_HTTP=sql.example.com
Étape 4. Installer WordPress en utilisant docker-compose
Vous pouvez déployer automatiquement un site wordpress local sur docker en 5 minutes en utilisant les commandes suivantes. Deux options sont disponibles : commande make
et commandes standard docker-compose
.
# Téléchargez un exemple de fichier docker-compose pour WordPress
git clone https://github.com/kassambara/wordpress-docker-compose
cd wordpress-docker-compose
# Utilisez la commande make pour l'installation automatique et
# configuration de wordpress
make autoinstall
# Ou bien, utilisez les commandes standard de docker-compose
docker-compose up -d --build
docker-compose -f docker-compose.yml -f wp-auto-config.yml run --rm wp-auto-config
- Visitez votre site web wordpress à l’adresse http://localhost. Identification par défaut pour admin (http://localhost/wp-login.php):
Username: wordpress
Password: wordpress
- Visitez votre base de données via phpMyAdmin à l’adresse http://localhost:8080
Username: root
Password: password
Étape 5. Arrêt et nettoyage
# Arrêter et supprimer les conteneurs
docker-compose down
# Construire et démarrer le site wordpress
docker-compose up -d --build
# Tout réinitialiser
docker-compose down
rm -rf mysql/* wordpress/*
Notez qu’au lieu d’utiliser les commandes docker-compose
ci-dessus, vous pouvez aussi utiliser facilement les lignes de commande de raccourcis make
suivantes si vous avez des systèmes Unix (MAC / Linux).
# Construire et démarrer le site wordpress
make start
# Arrêtez et supprimez les conteneurs docker de WordPress
make down
# Tout réinitialiser
make reset
Résumé
Cet article décrit l’installation du docker WordPress et les fichiers de configuration associés pour installer et exécuter WordPress à l’aide du docker-compose
Version: English
No Comments