Hur man snabbt distribuerar WordPress som en Docker-behållare

0
142
monticello/Shutterstock.com

WordPress är det mest populära innehållshanteringssystemet. Det är skrivet i PHP, lagrar data i en MySQL-databas och körs vanligtvis bakom en Apache-webbserver. Dessa beroenden lägger till flera paket i ditt system och kan vara svårt att upprätthålla över tiden. Så här startar du snabbt en containeriserad WordPress-installation med den officiella Docker-avbildningen.

Komma igång

För att köra WordPress i Docker krävs två separata behållare: en webbcontainer, körning av Apache och PHP och en databasbehållare som är värd för MySQL. Du måste också ställa in Docker-volymer för WordPress-datakatalogerna. Dessa lagrar dina konfigurationsfiler och uppladdade media så att de kvarstår i behållaren startar om.

Se till att du har installerat Docker och Docker Compose innan du fortsätter. Även om du kan använda Docker CLI på egen hand, gör Compose det lättare att definiera de två tjänsterna, deras beroenden och dina volymer. Du kommer att kunna ta upp hela stacken med ett enda kommando.

Base Images

Den officiella WordPress Docker-bilden finns i många olika taggade smaker. Dessa täcker spektrumet av tillgängliga WordPress- och PHP-versioner. Om du använder den senaste taggen får du den nuvarande WordPress-versionen med den senaste PHP-versionen.

Använd en specifik WordPress- och PHP-version för mer kontroll över din distribution. Här är några exempel:

  • wordpress: 5.7 & # 8211; WordPress 5.7 med den senaste PHP.
  • wordpress: php7.4 & # 8211; PHP 7.4 med den senaste WordPress.
  • wordpress: 5.7-php7.4 & # 8211; WordPress 5.7 med PHP 5.4.

Annonsering

En uttömmande lista över taggar som stöds erbjuds på Docker Hub. Förutom stöd för versionspinning finns även bildvarianter tillgängliga för Apache, FPM och Alpine.

Bilderna är förkonfigurerade med användbara standardinställningar. Du kan lägga till dina egna php.ini-inställningar genom att kopiera en kompatibel fil till $ PHP_INI_DIR/conf.d-katalogen i WordPress-behållaren.

Distribuera din stack

Skapa en ny katalog för din webbplats och lägg sedan till en docker-compose.yml-fil. Klistra in följande innehåll:

version: & quot; 3 & quot; tjänster: wordpress: image: wordpress: 5.7-php7.4 omstart: om inte stoppade portar: – 80 miljö: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: användarnamn WORDPRESS_DB_PASSWORD: lösenord WORDPRESS_DB_NAME: wordpress-volymer: – wordpress:/var/www/html myq: : mysql: 5.7 starta om: om inte-stoppad miljö: MYSQL_DATABASE: wordpress MYSQL_USER: användarnamn MYSQL_PASSWORD: lösenord MYSQL_RANDOM_ROOT_PASSWORD: & quot; 1 & quot; volymer: – mysql:/var/lib/mysql volumes: wordpress: mysql:

Denna komponera-fil definierar en minimal stack med de WordPress- och MySQL-tjänster som krävs. Databasanslutningen konfigureras med hjälp av miljövariabler. Du bör ändra databasens användarnamn och lösenord för att säkra dina egna värden. Kom ihåg att tillämpa ändringarna på båda tjänstdefinitionerna.

Tjänsterna är inställda på att starta om automatiskt om de inte har stoppats manuellt. Detta säkerställer att din webbplats kommer tillbaka automatiskt när du startar om värdsystemet.

Hela WordPress-installationskatalogen är monterad i en volym. Med detta tillvägagångssätt säkerställs att allt ditt WordPress-innehåll kvarstår utanför behållaren, inklusive konfiguration, teman, plugins och uppladdningar. Det låter dig också använda WordPress-självuppdateraren från adminpanelen. Om du bara monterade datakatalogerna i en volym försvinner alla källändringar som tillämpas av självuppdateraren efter en containeråterstart.

Annons

Distribuera stacken genom att köra docker-compose up -d . Du kommer att kunna logga in på WordPress genom att besöka http: //localhost i din webbläsare. Om du ser ett & # 8220; fel vid upprättande av databasanslutning & # 8221; meddelande, vänta några ögonblick innan du försöker igen. Det kan ta flera sekunder att slutföra databasadministrationen för första gången.

Klicka genom standardinstallationsguiden för WordPress för att konfigurera din webbplats. Du måste konfigurera ett initialt administratörsanvändarkonto. Dessa uppgifter ska skilja sig från dina MySQL-databas. WordPress-inloggningsformuläret visas när du är klar. Använd ditt nya administratörskonto för att logga in på admin-instrumentpanelen.

Nästa steg

Din WordPress-installation är nu redo att användas. Lägg till inlägg, sidor, teman och plugins med hjälp av administratörsgränssnittet, precis som en enkel WordPress-installation.

Det rekommenderas att du går igenom några grundläggande säkerhetshärdningssteg för att minska din webbplats & # 8217; s risk för attack. Du bör se till att du också har en reservrutin. Detta måste täcka MySQL-databasen och din WordPress-uppladdningskatalog, wp-innehåll.

Konfiguration med Docker Secrets

Att använda miljövariabler för konfiguration är tillräckligt för lokal användning. Dockerhemligheter stöds också, vilket ger dig mer säkerhet i miljöer som andra medarbetare kan komma åt. Definiera hemligheter i din komponera-fil och ersätt variabler som WORDPRESS_DB_PASSWORD för WORDPRESS_DB_PASSWORD_FILE. WordPress laddar variabelns värde från den hemliga filen som Docker injicerar.

tjänster: wordpress: miljö: WORDPRESS_DB_PASSWORD_FILE:/run/secrets/WORDPRESS_DB_PASSWORD secrets: – WORDPRESS_DB_PASSWORD secrets: WORDPRESS_DB_PASSWORD: file: ./db_password

Lägg till ditt lösenord i db_password-filen. Det kommer att vara tillgängligt som/run/secrets/WORDPRESS_DB_PASSWORD i behållaren. WordPress uppmanas att läsa den här filen för att bestämma det slutliga databaslösenordet.

Lägga till din egen webbplats

Stegen ovan resulterar i en ny WordPress-installation som är redo att konfigureras interaktivt via administratörscentret. Du kan förse din container med en uppsättning standardteman och plugins genom att montera dem i katalogerna/var/www/html/wp-content/teman och/var/www/html/wp-content/plugins.

Annons

Denna teknik hjälper dig också att skapa en anpassad Docker-bild för din webbplats. Använd den officiella WordPress-bilden som bas och kopiera din webbplats tillgångar till lämpliga kataloger. Här är ett exempel på hur du kan paketera ett anpassat tema som en färdig bild:

FRÅN wordpress: 5.7-php7.4-apache KOPIERA./Tema//var/www/html/wp-innehåll/teman/exempel-tema/

Ditt tema kommer att finnas tillgängligt i varje container du startar. Denna metod aktiverar emellertid inte temat automatiskt. För det behöver du en tredje tjänst med WordPress CLI-avbildningen.

tjänster: wpcli: image: wordpress: cli-2-php7.4-miljö: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: användarnamn WORDPRESS_DB_PASSWORD: lösenord WORDPRESS_DB_NAME: wordpress volumes_from: – wordpress: rw

CLI-behållaren behöver åtkomst till miljövariabler och volymer som görs tillgängliga för den vanliga webbcontainern. Miljövariabler måste dupliceras, såvida du inte extraherar dem till ett återanvändbart YAML-avsnitt, medan volymer kan monteras med volymer_from.

Nu kan du använda Docker Compose för att slutföra WordPress-installationen och aktivera ditt tema:

docker-compose kör wpcli core installation –title = “My Site” –admin_user = admin –admin_password = changeme –admin_email=me@example.com –url = localhost –allow-root docker-compose run wpcli theme aktivera exempel-tema – tillåt-root

Dessa steg kan automatiseras som en del av din bildbyggnadsprocess eller en CI-pipeline. Du kan begå den sista behållaren för att skapa en fristående bild av din webbplats, redo för efterföljande användning.

Slutsats

Att använda WordPress med Docker undviker att förorena din värdmaskin och hjälper dig att containerisera din webbplats och dess konfiguration. Genom att definiera dina tjänster som en Docker Compose-fil kan du snabbt snurra upp nya instanser och hjälpa kollaboratörer att komma igång.

Annons

När din stack är live liknar det pågående underhållet en vanlig WordPress-installation. Håll WordPress, dina plugins och dina teman uppdaterade och kolla proaktivt för säkerhetsproblem.

En Docker-specifik hushållsuppgift är att uppdatera WordPress-basavbildningen. Det är bra praxis att regelbundet dra den senaste bilden så att du inte saknar några viktiga operativsystemkorrigeringar. Kör docker-compose up -d –pull för att dra bilden och starta om dina tjänster.