Aller au contenu

WordPress sous Docker

Installer WordPress dans un conteneur Docker permet de déployer rapidement un site WordPress pour faire des tests sur son site web au lieu de le faire directement sur celui qui est en production. 
1. Créer un dossier WordPress et un fichier docker-compose.yml
mkdir WordPress
cd WordPress
nano docker-compose.yml
2. Coller la configuration et enregistrer
version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - wordpress:/var/www/html

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:
3. Lancer la commande docker-compose up -d
docker-compose up -d 
C:\Users\louis\Documents\Docker\wordpress
λ docker-compose up -d
[+] Running 2/2
 - Container wordpress-redis-1   Started           2.3s  
 - Container wordpress-docker-1  Started           3.4s

À la fin du processus, ouvrir votre navigateur internet et vous rendre sur :

http://localhost:8080/wp-admin/install.php

On arrive sur la page de configuration de base de WordPress !
Choisir sa langue et valider

Untitled 2

Choisir un nouveau mot de passe et valider l’installation de WordPress

Importer son site dans WordPress

Pour importer son site web pour faire des tests par exemple, il faut déjà avoir un export de son site en production, pour cela j’utilise le plugin All-In-One WP Migration. Cependant vous allez vite vous rendre compte que l’upload est limité à 2Mo par défaut. Pour faire sauter cette limite il faut :
Il va falloir entrer dans le shell de votre conteneur WordPress, pour se faire il faut connaitre son ID :
docker ps 
C:\Users\louis\Documents\Docker\wordpress
λ docker ps
CONTAINER ID   IMAGE              COMMAND                  CREATED       STATUS         PORTS
       NAMES
dbb60ea33b01   dockerfacile/app   "python app.py"          13 days ago   Up 2 minutes   0.0.0.0:5000->5000/tcp   wordpress-docker-1
d6ca9b831cc4   redis              "docker-entrypoint.s…"   13 days ago   Up 2 minutes   0.0.0.0:6379->6379/tcp   wordpress-redis-1
2. Copier l’ID du conteneur WordPress et le remplacer dans la commande suivante.
docker exec -ti -u 0 IDCONTENEUR bash
C:\Users\louis\Documents\Docker\wordpress
λ docker exec -ti -u 0 dbb60ea33b01 bash
root@dbb60ea33b01:/#
3. Une fois dans le shell du conteneur, il faut créer mettre à jour les applications, installer nano pour créer le fichier de configuration .htaccess dans le dossier /var/www/html
apt-get update
apt-get install nano 
nano .htaccess
php_value upload_max_filesize 2000M
php_value post_max_size 2000M
php_value memory_limit 2000M
php_value max_execution_time 300
Fermer le fichier et quitter, le serveur devrait pouvoir accepter des imports de la taille que vous lui aurez indiqué dans le fichier de configuration
3. Installer le plugin sur les deux serveurs, faire une sauvegarde de son site et télécharger l’archive.
4. Faire glisser l’archive de backup du site dans la rubrique importer du plugin et attendre la fin du chargement
SCR 20220416 ugh

Valider les changements. 

Vous avez maintenant la possibilité de faire ce que vous voulez sur votre site avant de le faire sur le site de production en cas d’erreur.

Comment repartir de zéro ?

1. Lister, éteindre et supprimer les conteneurs wordpress :
docker ps 
docker stop #IDCONTENEUR
docker rm #IDCONTENEUR
2. Relancer le docker-compose
docker-compose up -d

Alternative avec php

1. Télécharger le dossier suivant avec git clone :
git clone https://github.com/kassambara/wordpress-docker-compose
2. Se placer dans le dossier et lancer le conteneur avec docker-compose
docker-compose up -d
Pour effacer le conteneur, faire comme les étapes du dessus et supprimer le dossier téléchargé