
Installazione e configurazione di WordPress come container Docker su Raspberry Pi
I prerequisiti per seguire passo passo questa guida ovviamente sono:
- avere a disposizione un Raspberry Pi
- OS Raspbian (preferibilmente la versione Lite) installato
- applicazione Docker installata
Fatta questa premessa, colleghiamoci in ssh
sul nostro Raspberry Pi e andiamo a creare una cartella che, nella fase iniziale ci servirà per fornire le informazioni necessarie all’installazione e successivamente conterrà i dati del nostro sito WordPress.
mkdir /home/pi/docker-myblog
cd /home/pi/docker-myblog
mkdir html data
Ora posizioniamoci nella cartella appena creata e qui andiamo a creare 3 file.
Il primo file da creare sarà docker-compose.yml che conterrà le informazioni dei container da scaricare (WordPress e mysql) e le relative configurazioni come ad esempio la porta da pubblicare verso l’esterno (80) e la cartella accessibile dall’esterno del container sia per il database che per le pagine html di worpress.
Dal terminale eseguiamo:
nano docker-compose.yml
ed incolliamo quanto segue all’interno:
version: '3' services: wordpress: container_name: wordpress image: wordpress volumes: - ./html:/var/www/html ports: - '80:80' restart: always env_file: - blog_env mysql: container_name: mysql image: hypriot/rpi-mysql volumes: - ./data:/var/lib/mysql restart: always env_file: - mysql_env volumes: mysql: null wordpress: null
Premere CTRL+X
per chiudere e salvare, confermare il nome del file premendo il tasto S
ed infine premere INVIO
.
Il secondo file sarà mysql_env che conterrà le informazioni necessarie per impostare mysql (ovviamente sostituite le password).
Eseguiamo anche qui il seguente comando per modificare il file attraverso l’editor di testo nano
sudo nano mysql_env
e riportiamo quanto segue:
MYSQL_ROOT_PASSWORD=secret MYSQL_DATABASE=blog MYSQL_USER=blog_user MYSQL_PASSWORD=blogSecret
Anche qui premere CTRL+X
per chiudere e salvare, confermare il nome del file premendo il tasto S
ed infine premere INVIO
.
Terzo ed ultimo file è blog_env che contiene gli stessi dati precedenti, ma che verranno passati a WordPress.
Anche qui eseguiamo il seguente comando per modificare il file con l’editor di testo nano
sudo nano blog_env
e riportiamo quanto segue:
WORDPRESS_DB_HOST=mysql WORDPRESS_DB_USER=blog_user WORDPRESS_DB_PASSWORD=blogSecret WORDPRESS_DB_NAME=blog
Anche qui premere CTRL+X
per chiudere e salvare, confermare il nome del file premendo il tasto S
ed infine premere INVIO
.
Arrivati a questo punto, non ci resta che lanciare il seguente comando per far si che Docker scarichi ed installi le immagini di wordpress e mysql dal dockerhub con i parametri forniti nel file yml
sudo docker-compose up -d --build
Ora non ci resta che completare l’installazione tramite l’interfaccia web di WordPress, per cui apriamo il nostro web-browser preferito ed inseriamo l’indirizzo IP del nostro Raspberry Pi e verremo reindirizzati sulla seguente pagina

Buon divertimento!
Ciao e grazie per questa guida.
L’ho seguita solo dopo aver installato Docker e Docker Compose come suggerito in un’altra guida su withblue.ink
Funziona. Cioè, digito l’IP dentro al browser e vedo l’installer di WP.
Ma cosa dovrei fare se volessi testare più siti contemporaneamente?
Grazie per l’aiuto.
Grazie mille per l’aiuto! Comincio a capire il funzionamento – giustificato allo scopo – di Docker.
Una configurazione per ciascun container.
Una cosa mi sfugge: perché questa tua configurazione installa apache di default? Non mi pare sia specificato. A meno che non lo sia dall’espressione “image: wordpress”.
Ho visto in altri casi usare:
webserver:
depends_on:
– wordpress
image: nginx:1.15.12-alpine
container_name: webserver
ecc ecc ecc…
Porta pazienza, ancora non conosco Docker e la sua sintassi.
Mi sono dimenticato di chiederti la cosa più importante!
Se con il primo container il sito risponde ed è visibile digitando l’ip del rpi, come raggiungo gli altri wordpress degli altri container?
Grazie mille del supporto!
Ciao. Soluzione riprovata a distanza di qualche tempo, purtroppo non riesco a far andare nulla, nemmeno una sola istanza di wp. Perdona, non sono un esperto, tuttavia pensavo di aver capito come gestire più siti su più porte, ma non sono mai riuscito a far partire niente. Mi propongo come aiutante nel caso volessi riscrivere la guida in modo più approfondito. 🙂