WordPress su Docker

All’inizio del mio percorso di WordPress usavo XAMP per generare il server su cui fare gli esperimenti. Ultimamente ho pensato di trasferirmi su un’altra tecnologia: Docker.

Dopo aver visto come è il principio di Docker mi sono messo a fare un instanza di WordPress. Per fare questo dopo l’installazione normale di Docker e di Docker-compose (su Linux), si crea un file chiamato “docker-compose.yml” simile a quello che si vede successivamente.

version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- "./wordpress:/var/www/html"
- "./plugins:/var/www/html/wp-content/plugins"
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}

Questo esempio funzionante potrebbe essere non efficace per tutte le possibile opzioni, ma al momento è quella che sto usando.

Il file instanzia 2 servizi: mysql e wordpress.

Nell’instanzia di WordPress si creano nella cartella dove si trova il file di configurazione 2 cartelle, quella che contiene tutto wordpress e quella diretta per i plugin. Possono essere aggiunte altre se si ha necessità di accedere a cartelle senza chiamare tutto il percorso ogni volta.

Infine da terminale, per avviare Docker uso il seguente comando: docker-compose up -d

Invece per terminare il processo senza perdere il contenuto: docker-compose down

Se invece voglio resettare il contenuto, così iniziando una instanzia di wordpress pulita: docker-compose down  –volumes

L’ultima cosa è che dopo l’avvio dal terminale di Docker esso crea le cartelle con il file di permesso impostati su Root, con il semplice comando sudo chmod a+rwx /absolute-path si modifica immeditamente.

N.B. Questa versione è solo un articolo sull’esperienza che ho fatto su questo, potrebbe non essere la versione migliore, ma è la base con cui sono partito.