Installer Wordpress avec docker-compose
Wordpress est le CMS le plus populaire. Je ne vais pas faire les éloge, aujourd’hui je me contente d’installer Wordpress avec docker-compose.
Attention, avant d’installer WordPress via docker, il faut savoir qu’il ne dispose pas de serveur SNMP par défaut. Autrement dit, il n’est pas capable de gérer les formulaires de contact ou envoie de mail quelconque. Le second problème est que l’on ne peut pas modifier le contenu de WordPress, cela se traduit par une limitation d’upload de fichiers à 2M. Pour ce second problème, on peut y palier simplement en mappant un fichier entre l’hôte du conteneur.
Prérequis
- Avoir docker et portainer d’installer sur son hôte
- Avoir un hôte mis à jour avec une adresse IP static
Création du fichier uploads.ini
Le fichier uploads.ini est celui qui sera mappé à l’intérieur du conteneur qui contiendra des instructions afin d’augmenter la limite d’upload de WordPress.
Créons d’abord l’arborescence de nos répertoires.
cd /srv
mkdir docker
mkdir docker/wordpress
Ensuite je créer le fichier uploads.ini
nano uploads.ini
Dans le fichier je copie ces instructions :
upload_max_filesize = 100M
post_max_size = 100M
La taille des fichiers uploader sur WordPress ne pourra pas dépasser 100M, il est possible de mettre plus si besoin. Sauvegarder puis quitter le fichier.
Déploiement de WordPress via docker compose
La stack présenter contient quelques modifications sur celle proposée par WordPress. Au menu :
- Ajout d’un mappage de fichier uploads.ini afin de palier au problème d’upload de médias
- Ajout d’un conteneur phpmyadmin pour administrer la base de données via une interface web (Attention, l’interface PMA est désactiver par défaut pour éviter des problèmes de sécurité. Enlever les # au début du mappage de port pour y accéder)
Pour déployer la stack rendez-vous sur votre instance portainer, dans l’onglet « stack ». Vous n’avez qu’à copier la stack présente ci-dessous et modifier les paramètres en fonction de vos besoins.
version: "2"
services:
wordpress-db:
container_name: wordpress-db
image: mysql:5.7
volumes:
- /srv/docker/wordpress/db:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: $ROOTPWD
MYSQL_DATABASE: wordpress
MYSQL_USER: $USER
MYSQL_PASSWORD: $PWD
wordpress:
container_name: wordpress
depends_on:
- wordpress-db
image: wordpress:latest
ports:
- 8000:80
restart: always
volumes:
- /srv/docker/wordpress/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
- /srv/docker/wordpress/html:/var/www/html
environment:
WORDPRESS_DB_HOST: wordpress-db:3306
WORDPRESS_DB_USER: $USER
WORDPRESS_DB_PASSWORD: $PWD
WORDPRESS_DB_NAME: wordpress
wordpress-pma:
image: phpmyadmin/phpmyadmin
container_name: wordpress-pma
depends_on:
- wordpress-db
environment:
- PMA_HOST=wordpress-db
- PMA_PORT=3306
- PMA_ARBITRARY=1
#ports:
# - 8001:80
restart: always
Une fois déployer, il ne vous reste qu’à lance l’initialisation de WordPress via l’ip http://ip-hôte:8000
Conclusion
Si votre but est de publier le site WordPress sur internet, je vous conseiller de suivre ses tutos :
Docker : Installation de DuckDNS (DDNS)
Docker : Installation de Nginx Proxy Manager (Reverse proxy)
Ces deux autres conteneurs vous seront indispensables pour la publication du site sur internet. je vous rappelle que pour toute question vous pouvez me contacter sur contact.zatoufly.fr ou bien sur mon discord !