Dockpress è un semplice ambiente di sviluppo LEMP basato su Docker per applicazioni WordPress.
Cerchi qualcosa di simile per Laravel? Dai un'occhiata a Laradhoc!
- Nginx
- PHP (7.2 / 7.3 / 7.4) con OPCache
- MySQL / MariaDB
- Mailhog
- Redis
- Nome di dominio personalizzato (es.
http://mydockpress.test
)
Puoi scegliere quale versione di PHP utilizzare (per esempio, 7.4
) impostando la variabile ${PHP_VERSION}
nel tuo file .env
(vedi .env.example
per maggiori dettagli).
In maniera simile, puoi scegliere quale database usare (per esempio, MariaDB 10.2
) impostando la variabile ${DATABASE_IMAGE}
nel tuo
file .env
(vedi .env.example
per maggiori dettagli).
Nel caso in cui tu voglia personalizzare la configurazione Docker (es. aggiungendo un mount),
esegui cp docker-compose.yml docker-compose.override.yml
quindi modifica il file
docker-compose.override.yml
. Quest'ultimo verrà utilizzato da Docker.
- MacOS, Linux o Windows con WSL
- Docker
Clona questo repository.
Supponiamo che la tua applicazione WordPress debba essere accessibile all'indirizzo mydockpress.test
:
git clone [email protected]:eleftrik/dockpress.git mydockpress.test
cd mydockpress.test
Crea il file .env
a partire da .env.example
cp .env.example .env
# Personalizza ogni variabile in base alle tue esigenze.
# Leggi i commenti in corrispondenza di ciascuna variabile nel file .env.example.
In base al valore della variabile ${APP_HOST}
, aggiungi il tuo dominio (es. mydockpress.test
) al tuo file hosts
sudo /bin/bash -c 'echo -e "127.0.0.1 mydockpress.test" >> /etc/hosts'
Esegui la build di tutti i container Docker e avviali
.docker/scripts/init
Progetto WordPress nuovo di zecca? Nessun problema! Esegui:
.docker/scripts/wp-install
Un'installazione WordPress fresca fresca verrà scaricata in ${APP_SRC}
, configurata e disponibile all'indirizzo http://${APP_HOST}
o https://${APP_HOST}
Stufo di lavorare? Ferma tutto:
.docker/scripts/stop
La prossima volta che hai bisogno di eseguire la tua applicazione, se non hai modificato nulla a livello di configurazione Docker, esegui
.docker/scripts/start
Quando esegui l'aggiornamento a partire da una versione precedente, segui questi passaggi:
-
aggiorna il tuo codice
- via
git pull
se punti ancora a questo repository, un fork o un repo privato - manualmente, scaricando la release che ti occorre
In entrambi i casi, la cartella
src/
non verrà coinvolta - via
-
consulta
CHANGELOG.md
-
aggiorna il tuo file
./.env
confrontandolo con./.env.example
(nuove variabili potrebbero essere state introdotte) -
se hai sovrascritto
docker-compose.yml
tramitedocker-compose.override.yml
, consultadocker-compose.yml
per verificare se qualcosa è stato aggiunto, modificato o eliminato, confrontando con la precedente versione del filedocker-compose.yml
che stavi usando prima di effettuare l'aggiornamento -
esegui
.docker/scripts/start --build
Dockpress fornisce alcuni comodi script, situati nella cartella .docker/scripts
.
Eseguili dalla cartella base in cui hai collocato Dockpress.
.docker/scripts/init
E' una scorciatoia per
docker-compose up -d --build
Esegue e avvia i container
.docker/scripts/start
E' una scorciatoia per
docker-compose up -d
Puoi usare il flag --build
se vuoi eseguire la build delle immagini, altrimenti
.docker/scripts/start
è sufficiente per tirare su l'ambiente di sviluppo
Stanco di lavorare?
.docker/scripts/stop
Utile per tirare su un nuovo progetto WordPress da zero.
Rende disponibile una nuova installazione di WordPress nella cartella ${APP_SRC}
,
crea un file ${APP_SRC}/.env
contenente gli stessi valori presenti nel file .env
principale,
infine crea un file ${APP_SRC}/wp-config.php
che usa il file .env
sopra menzionato.
.docker/scripts/wp-install
Vuoi far fuori tutto?
Questo comando ferma tutti i container, cancella i volumi Docker e l'intera cartella $APP_SRC
.
Per cui, prima di eseguirlo, ASSICURATI di aver compreso davvero bene che perderai tutta la tua codebase WordPress e il relativo database!
.docker/scripts/nah
Per far fuori tutto e ripartire da zero, esegui
.docker/scripts/nah && .docker/scripts/init && .docker/scripts/wp-install
Puoi connetterti al tuo database via riga di comando o utilizzando un'applicazione.
Per esempio, da riga di comando:
source .env
mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -h127.0.0.1 $MYSQL_DATABASE
Però scommetto che preferisci utilizzare la tua applicazione preferita, ad esempio:
- TablePlus
- SequelPro
- HeidiSQL
ecc.
Utilizza i parametri presenti nel tuo file .env
.
Per "acchiappare" tutte le mail in uscita utilizzando MailHog, installa un plugin WordPress (es. WP Mail SMTP) e usa questa configurazione:
- SMTP host=mailhog
- SMTP port=1025
- SMTP username=(nessun valore)
- SMTP password=(nessun valore)
L'interfaccia web di MailHog è disponibile all'indirizzo
http://${APP_HOST}:${MAILHOG_PORT}
Ad esempio: http://mydockpress.test:8081
Suggerimenti, revisioni, segnalazioni di bug sono i benvenuti. Non si smette mai di imparare :-)
Le pull request sono ben accette. Per modifiche più sostanziose, prima apri un issue per spiegare cosa vorresti modificare.
Un ringraziamento a Mauro Cerone per l'ispirazione