Come distribuire rapidamente WordPress come contenitore Docker

0
209
monticello/Shutterstock.com

WordPress è il sistema di gestione dei contenuti più popolare. È scritto in PHP, memorizza i dati in un database MySQL e di solito viene eseguito dietro un server Web Apache. Queste dipendenze aggiungono diversi pacchetti al tuo sistema e possono essere difficili da mantenere nel tempo. Ecco come avviare rapidamente un'installazione di WordPress containerizzata utilizzando l'immagine Docker ufficiale.

Per iniziare

L'esecuzione di WordPress in Docker richiede due contenitori separati: un contenitore web, che esegue Apache e PHP, e un contenitore di database, che ospita MySQL. È inoltre necessario configurare i volumi Docker per le directory dei dati di WordPress. Questi memorizzano i file di configurazione e i supporti caricati in modo che persistano tra i riavvii del contenitore.

Assicurati di aver installato Docker e Docker Compose prima di continuare. Sebbene sia possibile utilizzare la CLI Docker da sola, Compose semplifica la definizione dei due servizi, delle relative dipendenze e dei volumi. Sarai in grado di visualizzare l'intero stack con un singolo comando.

Immagini di base

L'immagine ufficiale di WordPress Docker è disponibile in molti tipi di tag diversi. Questi coprono lo spettro delle versioni WordPress e PHP disponibili. Se utilizzi il tag più recente, otterrai la versione corrente di WordPress con la versione PHP più recente.

Per un maggiore controllo sulla distribuzione, utilizza una versione specifica di WordPress e PHP. Ecco alcuni esempi:

  • wordpress:5.7 – WordPress 5.7 con l'ultimo PHP.
  • wordpress:php7.4 – PHP 7.4 con l'ultima versione di WordPress.
  • wordpress:5.7-php7.4 – WordPress 5.7 con PHP 5.4.

Pubblicità

Su Docker Hub è disponibile un elenco completo dei tag supportati. Oltre al supporto per il pinning della versione, sono disponibili anche varianti di immagini per Apache, FPM e Alpine.

Le immagini sono preconfigurate con impostazioni predefinite utilizzabili. Puoi aggiungere le tue impostazioni php.ini copiando un file compatibile nella directory $PHP_INI_DIR/conf.d all'interno del contenitore WordPress.

Distribuzione del tuo stack

Crea una nuova directory per il tuo sito, quindi aggiungi un file docker-compose.yml. Incolla il seguente contenuto:

versione: "3" servizi: wordpress: immagine: wordpress:5.7-php7.4 riavvio: a meno che non sia stato interrotto porte: – 80 ambiente: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: nome utente WORDPRESS_DB_PASSWORD: password WORDPRESS_DB_NAME: volumi wordpress: – wordpress:/var/www/html mysql: immagine : mysql:5.7 riavvio: ambiente a meno che non sia stato interrotto: MYSQL_DATABASE: wordpress MYSQL_USER: nome utente MYSQL_PASSWORD: password MYSQL_RANDOM_ROOT_PASSWORD: "1" volumi: – mysql:/var/lib/mysql volumi: wordpress: mysql:

Questo file Compose definisce uno stack minimo con i servizi WordPress e MySQL richiesti. La connessione al database viene configurata utilizzando le variabili di ambiente. Dovresti cambiare il nome utente e la password del database per proteggere i tuoi valori. Ricorda di applicare le modifiche a entrambe le definizioni di servizio.

I servizi sono impostati per riavviarsi automaticamente a meno che non siano stati arrestati manualmente. Ciò garantisce che il tuo sito venga ripristinato automaticamente quando riavvii il sistema host.

L'intera directory di installazione di WordPress è montata in un volume. L'utilizzo di questo approccio garantisce che tutti i contenuti di WordPress siano persistenti al di fuori del contenitore, inclusi configurazione, temi, plug-in e caricamenti. Ti consente anche di utilizzare l'auto-aggiornamento di WordPress dal pannello di amministrazione. Se hai montato solo le directory dei dati in un volume, qualsiasi modifica all'origine applicata dall'auto-aggiornamento andrebbe persa dopo il riavvio del contenitore.

Annuncio

Distribuisci lo stack eseguendo docker-compose up -d . Sarai in grado di accedere a WordPress visitando http://localhost nel tuo browser. Se vedi un “errore durante la creazione della connessione al database” messaggio, attendere qualche istante prima di riprovare. Il completamento del provisioning del database di prima esecuzione può richiedere diversi secondi.

Fai clic sulla procedura guidata di installazione standard di WordPress per configurare il tuo sito. Dovrai configurare un account utente amministratore iniziale. Queste credenziali dovrebbero essere diverse da quelle del tuo database MySQL. Il modulo di accesso di WordPress apparirà quando hai finito. Usa il tuo nuovo account amministratore per accedere alla dashboard di amministrazione.

Passaggi successivi

Ora l'installazione di WordPress è pronta per l'uso. Aggiungi post, pagine, temi e plug-in utilizzando l'interfaccia di amministrazione, proprio come un'installazione semplice di WordPress.

Si consiglia di eseguire alcuni passaggi di base per rafforzare la sicurezza per ridurre il tuo sito& #8217;s rischio di attacco. Dovresti assicurarti di avere anche una routine di backup. Questo dovrà coprire il database MySQL e la directory dei caricamenti di WordPress, wp-content.

Configuration With Docker Secrets

L'uso delle variabili di ambiente per la configurazione è adeguato per l'uso locale. Sono supportati anche i segreti Docker, che ti offrono maggiore sicurezza in ambienti a cui possono accedere altri collaboratori. Definisci i segreti nel tuo file Compose e sostituisci variabili come WORDPRESS_DB_PASSWORD per WORDPRESS_DB_PASSWORD_FILE. WordPress caricherà il valore della variabile dal file segreto che Docker inietta.

servizi: wordpress: ambiente: WORDPRESS_DB_PASSWORD_FILE: /run/secrets/WORDPRESS_DB_PASSWORD segreti: – WORDPRESS_DB_PASSWORD segreti: WORDPRESS_DB_PASSWORD: file: ./db_password

Aggiungi la tua password al file db_password nella tua directory di lavoro. Sarà accessibile come /run/secrets/WORDPRESS_DB_PASSWORD nel contenitore. A WordPress viene chiesto di leggere questo file per determinare la password finale del database.

Aggiungere il tuo sito

I passaggi precedenti si traducono in una nuova installazione di WordPress pronta per la configurazione interattiva tramite l'interfaccia di amministrazione. Puoi fornire al tuo contenitore una serie di temi e plugin predefiniti montandoli nelle directory /var/www/html/wp-content/themes e /var/www/html/wp-content/plugins.

Questa tecnica ti aiuta anche a creare un'immagine Docker personalizzata per il tuo sito. Usa l'immagine ufficiale di WordPress come base e copia le risorse del tuo sito nelle directory appropriate. Ecco un esempio di come potresti impacchettare un tema personalizzato come un'immagine pronta per l'uso:

FROM wordpress:5.7-php7.4-apache COPY ./theme//var/www/html/wp-content/themes/example-theme/

Il tuo tema sarà disponibile in ogni contenitore che avvii. Tuttavia, questo metodo non abilita automaticamente il tema. Per questo, avrai bisogno di un terzo servizio che utilizzi l'immagine CLI di WordPress.

services: wpcli: image: wordpress:cli-2-php7.4 ambiente: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: username WORDPRESS_DB_PASSWORD: password WORDPRESS_DB_NAME: wordpress volumes_from: – wordpress:rw

Il contenitore CLI necessita dell'accesso alle variabili d'ambiente e ai volumi resi disponibili al normale contenitore web. Le variabili d'ambiente devono essere duplicate, a meno che tu non le estragga in una sezione YAML riutilizzabile, mentre i volumi possono essere montati usando volumes_from.

Ora puoi usare Docker Compose per completare l'installazione di WordPress e abilitare il tuo tema:

docker-compose esegui wpcli core install –title=”My Site” –admin_user=admin –admin_password=changeme –admin_email=me@example.com –url=localhost –allow-root docker-compose esegui wpcli theme attiva esempio-tema –allow-root

Questi passaggi possono essere automatizzati come parte del processo di creazione dell'immagine o di una pipeline CI. Potresti impegnare il contenitore finale per creare un'immagine autonoma del tuo sito, pronta per l'uso successivo.

Conclusione

Utilizzare WordPress con Docker evita di inquinare il tuo computer host e ti aiuta a containerizzare il tuo sito e la sua configurazione. Definire i tuoi servizi come un file Docker Compose ti consente di avviare rapidamente nuove istanze e aiutare i collaboratori a essere operativi.

Pubblicità

Una volta che il tuo stack è attivo, la manutenzione in corso è simile a una normale installazione di WordPress. Mantieni WordPress, i tuoi plug-in e i tuoi temi aggiornati e controlla in modo proattivo i problemi di sicurezza.

Un'attività di manutenzione specifica di Docker è l'aggiornamento dell'immagine di base di WordPress. È buona norma estrarre periodicamente l'immagine più recente in modo da non perdere nessuna patch importante del sistema operativo. Esegui docker-compose up -d –pull per estrarre l'immagine e riavviare i servizi.