WordPress snel implementeren als een Docker-container

0
184
monticello/Shutterstock.com

WordPress is het populairste contentmanagementsysteem. Het is geschreven in PHP, slaat gegevens op in een MySQL-database en draait meestal achter een Apache-webserver. Deze afhankelijkheden voegen verschillende pakketten toe aan uw systeem en kunnen in de loop van de tijd lastig te onderhouden zijn. Hier leest u hoe u snel een WordPress-installatie in containers kunt starten met de officiële Docker-afbeelding.

Aan de slag

WordPress draaien in Docker vereist twee afzonderlijke containers: een webcontainer, waarop Apache en PHP worden uitgevoerd, en een databasecontainer die MySQL host. U moet ook Docker-volumes instellen voor de WordPress-gegevensmappen. Deze slaan uw configuratiebestanden en geüploade media op, zodat ze blijven bestaan ​​tijdens het opnieuw opstarten van de container.

Zorg ervoor dat u Docker en Docker Compose hebt geïnstalleerd voordat u doorgaat. Hoewel u de Docker CLI op zichzelf kunt gebruiken, maakt Compose het gemakkelijker om de twee services, hun afhankelijkheden en uw volumes te definiëren. Je kunt de hele stapel met één opdracht oproepen.

Basisafbeeldingen

De officiële WordPress Docker-afbeelding is beschikbaar in veel verschillende getagde smaken. Deze bestrijken het spectrum van beschikbare WordPress- en PHP-versies. Als u de nieuwste tag gebruikt, krijgt u de huidige WordPress-versie met de nieuwste PHP-release.

Gebruik een specifieke WordPress- en PHP-versie voor meer controle over uw implementatie. Hier zijn een paar voorbeelden:

  • wordpress:5.7 – WordPress 5.7 met de nieuwste PHP.
  • wordpress:php7.4 – PHP 7.4 met de nieuwste WordPress.
  • wordpress:5.7-php7.4 – WordPress 5.7 met PHP 5.4.

Advertentie

Een uitgebreide lijst van ondersteunde tags wordt aangeboden op Docker Hub. Naast ondersteuning voor het vastzetten van versies zijn er ook afbeeldingsvarianten beschikbaar voor Apache, FPM en Alpine.

Afbeeldingen zijn vooraf geconfigureerd met bruikbare standaardinstellingen. U kunt uw eigen php.ini-instellingen toevoegen door een compatibel bestand te kopiëren naar de $PHP_INI_DIR/conf.d-directory in de WordPress-container.

Uw stack implementeren

Maak een nieuwe map voor uw site en voeg vervolgens een docker-compose.yml-bestand toe. Plak de volgende inhoud in:

versie: "3" services: wordpress: afbeelding: wordpress:5.7-php7.4 herstart: tenzij-gestopt poorten: – 80 omgeving: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: gebruikersnaam WORDPRESS_DB_PASSWORD: wachtwoord WORDPRESS_DB_NAME: wordpress volumes: – wordpress:/var/www/html mysql: afbeelding : mysql:5.7 herstart: tenzij-gestopt omgeving: MYSQL_DATABASE: wordpress MYSQL_USER: gebruikersnaam MYSQL_PASSWORD: wachtwoord MYSQL_RANDOM_ROOT_PASSWORD: "1" volumes: – mysql:/var/lib/mysql volumes: wordpress: mysql:

Dit Compose-bestand definieert een minimale stapel met de vereiste WordPress- en MySQL-services. De databaseverbinding wordt geconfigureerd met behulp van omgevingsvariabelen. U moet de gebruikersnaam en het wachtwoord van de database wijzigen om uw eigen waarden te beveiligen. Vergeet niet om de wijzigingen op beide servicedefinities toe te passen.

De services zijn ingesteld om automatisch opnieuw te starten, tenzij ze handmatig zijn gestopt. Dit zorgt ervoor dat uw site automatisch terugkomt wanneer u het hostsysteem opnieuw opstart.

De volledige WordPress-installatiemap wordt op een volume gemount. Door deze aanpak te gebruiken, zorgt u ervoor dat al uw WordPress-inhoud buiten de container wordt bewaard, inclusief configuratie, thema's, plug-ins en uploads. Hiermee kunt u ook de WordPress-zelfupdater gebruiken vanuit het beheerdersdashboard. Als u de gegevensmappen alleen in een volume koppelt, gaan alle bronwijzigingen die door de self-updater worden toegepast verloren na een herstart van de container.

Advertentie

Implementeer de stapel door docker-compose up -d uit te voeren . U kunt inloggen op WordPress door naar http://localhost in uw browser te gaan. Als u een “fout bij het tot stand brengen van een databaseverbinding” bericht, wacht even voordat u het opnieuw probeert. Het kan enkele seconden duren voordat de database-inrichting bij de eerste run is voltooid.

Klik door de standaard WordPress-installatiewizard om uw site te configureren. U moet een eerste beheerdersgebruikersaccount instellen. Deze inloggegevens moeten verschillen van die van uw MySQL-database. Het WordPress-inlogformulier verschijnt wanneer u klaar bent. Gebruik uw nieuwe beheerdersaccount om in te loggen op het beheerdersdashboard.

Volgende stappen

Uw WordPress-installatie is nu klaar voor gebruik. Voeg berichten, pagina's, thema's en plug-ins toe met behulp van de beheerdersinterface, net als een bare-metal WordPress-installatie.

Het is aan te raden om enkele basisbeveiligingsstappen te doorlopen om uw site te verkleinen& #8217;s risico op een aanval. Je moet er ook voor zorgen dat je een back-uproutine hebt. Dit moet de MySQL-database en uw WordPress-uploadmap, wp-content, dekken.

Configuratie met Docker Secrets

Het gebruik van omgevingsvariabelen voor configuratie is voldoende voor lokaal gebruik. Docker-geheimen worden ook ondersteund, waardoor u meer veiligheid krijgt in omgevingen waartoe andere medewerkers toegang hebben. Definieer geheimen in uw Compose-bestand en vervang variabelen zoals WORDPRESS_DB_PASSWORD voor WORDPRESS_DB_PASSWORD_FILE. WordPress laadt de waarde van de variabele uit het geheime bestand dat Docker injecteert.

services: wordpress: omgeving: WORDPRESS_DB_PASSWORD_FILE: /run/secrets/WORDPRESS_DB_PASSWORD geheimen: – WORDPRESS_DB_PASSWORD geheimen: WORDPRESS_DB_PASSWORD: bestand: ./db_password

Voeg uw wachtwoord toe aan het db_password-bestand in uw werkmap. Het zal toegankelijk zijn als /run/secrets/WORDPRESS_DB_PASSWORD in de container. WordPress krijgt de opdracht dit bestand te lezen om het uiteindelijke databasewachtwoord te bepalen.

Uw eigen site toevoegen

De bovenstaande stappen resulteren in een nieuwe WordPress-installatie die klaar is om interactief te configureren via het beheercentrum. U kunt uw container voorzien van een set standaardthema's en plug-ins door ze in de mappen /var/www/html/wp-content/themes en /var/www/html/wp-content/plugins te plaatsen.

Met deze techniek kunt u ook een aangepaste Docker-afbeelding voor uw site maken. Gebruik de officiële WordPress-afbeelding als basis en kopieer de activa van uw site naar de juiste mappen. Hier is een voorbeeld van hoe u een aangepast thema kunt verpakken als een kant-en-klare afbeelding:

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

Je thema zal beschikbaar zijn in elke container die je start. Deze methode schakelt het thema echter niet automatisch in. Daarvoor heb je een derde service nodig die de WordPress CLI-afbeelding gebruikt.

services: wpcli: afbeelding: wordpress:cli-2-php7.4 omgeving: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: gebruikersnaam WORDPRESS_DB_PASSWORD: wachtwoord WORDPRESS_DB_NAME: wordpress volumes_from: – wordpress:rw

De CLI-container heeft toegang nodig tot de omgevingsvariabelen en volumes die beschikbaar worden gesteld aan de reguliere webcontainer. Omgevingsvariabelen moeten worden gedupliceerd, tenzij je ze extraheert in een herbruikbare YAML-sectie, terwijl volumes kunnen worden gemount met volumes_from.

Nu kun je Docker Compose gebruiken om de WordPress-installatie te voltooien en je thema in te schakelen:

docker-compose run wpcli core install –title=”Mijn site” –admin_user=admin –admin_password=changeme –admin_email=me@example.com –url=localhost –allow-root docker-compose voer wpcli-thema uit active example-theme –allow-root

Deze stappen kunnen worden geautomatiseerd als onderdeel van uw image-buildproces of een CI-pipeline. U kunt de laatste container vastleggen om een ​​standalone afbeelding van uw site te maken, klaar voor later gebruik.

Conclusie

Het gebruik van WordPress met Docker voorkomt vervuiling van uw hostmachine en helpt u uw site en de configuratie ervan in een container te plaatsen. Als u uw services definieert als een Docker Compose-bestand, kunt u snel nieuwe instanties opstarten en medewerkers helpen aan de slag te gaan.

Advertentie

Zodra uw stack live is, is het doorlopende onderhoud vergelijkbaar met een normale WordPress-installatie. Houd WordPress, uw plug-ins en uw thema's up-to-date en controleer proactief op beveiligingsproblemen.

Een Docker-specifieke huishoudelijke taak is het bijwerken van de WordPress-basisafbeelding. Het is een goede gewoonte om regelmatig de nieuwste afbeelding op te halen, zodat u geen belangrijke patches voor het besturingssysteem mist. Voer docker-compose up -d –pull uit om de afbeelding op te halen en uw services opnieuw te starten.