Docker

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 !

Jérémy Taunay

🪪 Be smarter everyday | 🏮 Less is more | 🐧Tech systèmes et réseaux | 🖥️ Homelaber