←Terug naar het blog

Hoe een Drupal- of WordPress-site lokaal op te zetten met Docker

2020-09-02‱4 minuten leestijd

Dit artikel heeft niet als doel om uitleg te geven over de tools die ik gebruik om Drupal/WordPress-sites op te zetten, ik denk dat er veel informatie op internet beschikbaar is over Docker, Traefik, Compose. Het enige doel van deze post is om het proces dat ik volg te documenteren, aangezien het heel eenvoudig is, en hopelijk kan het ook anderen helpen.

Vereisten: Voordat u begint, hebt u nodig:

  1. Docker geĂŻnstalleerd.
  2. Basiskennis van git.
  3. Om bekend te zijn met de terminal.
  4. Een bestaande repo/codebase van Drupal/WordPress. Als u alleen een schone installatie wilt proberen, volg dan de officiële documentatie van de vanilla-installaties van wodby.com, deze zijn eenvoudiger dan dit. De URL's zijn: Drupal of WordPress

De stappen voor Drupal 7/8/9:

  1. Maak een map aan waar u de bestanden van uw project wilt bewaren. De naam van de map is belangrijk, aangezien het netwerk op basis hiervan wordt aangemaakt. Kies indien mogelijk een korte naam met slechts één woord. De naam zal ook voor de URL worden gebruikt. Voor dit tutorial maak ik een map genaamd d8base.
  2. Kloon de Docker4Drupal repository in de map die u in stap 1 hebt aangemaakt. U kunt dit commando vanuit de terminal uitvoeren om dit te doen: git clone [email protected]:wodby/docker4drupal.git .
  3. Maak een nieuwe map aan en noem deze web, binnen de map die u in stap 1 hebt aangemaakt. In het docker-compose-bestand is de Nginx standaard geconfigureerd om de web-map als server root te gebruiken. We klonen onze Drupal codebase ook in deze map.
  4. Verwijder het docker-compose.override.yml-bestand en uw bestandsstructuur zou er als volgt uit moeten zien: Alt Tekst
  5. Open de bestanden in uw favoriete IDE en bewerk het .env-bestand. De regels die we moeten bijwerken zijn regel 7 en 8. Als projectnaam moeten we dezelfde naam gebruiken als die we voor de map hebben gebruikt die we in stap 1 hebben aangemaakt (in mijn geval d8base). Als de URL van het project gebruik ik de naam van de map die in stap één is aangemaakt als prefix en ik behoud het docker.localhost-deel. Dit is slechts mijn voorkeur.
PROJECT_NAME=d8base
PROJECT_BASE_URL=d8base.docker.localhost
  1. Bewerk het docker-compose.yml-bestand en voer de volgende updates uit: *Comment alle regels met betrekking tot traefik uit, aangezien we later een globaal traefik.yml-bestand zullen aanmaken.
  2. Alt Tekst
    *Verwijder de commentaar van de regels met betrekking tot PhpMyAdmin (pma), zodat we deze beschikbaar hebben om onze database te importeren:Alt Tekst
  3. Kloon in de web-map, aangemaakt als onderdeel van stap 3, de repo van uw Drupal codebase. Zorg ervoor dat de Drupal-code zich in deze map zelf bevindt in plaats van in een submap.
  4. Voer in de terminal, binnen de map die in stap 1 is aangemaakt, het volgende commando uit om de services te starten:
make up

Configureer traefik

  1. Maak een nieuwe map aan, ik raad aan deze traefik te noemen, en maak daarin een traefik.yml-bestand aan, en de inhoud van het bestand moet dit zijn:
version: '3'
services:
  traefik:
    image: traefik:v2.0
    command: --api.insecure=true --providers.docker
    networks:
      - d8base
    ports:
      - '80:80'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
networks:
  d8base:
    external:
      name: d8base_default

Als u meer projecten hebt die u moet opzetten, hoeft u ze alleen maar toe te voegen aan de traefik.yml, vergelijkbaar met dit:
Alt Tekst

  1. Voer in de terminal het volgende commando uit in de traefik-map:

docker-compose -f traefik.yml up -d

De stappen voor WordPress

  1. Het proces is hetzelfde als dat we voor Drupal hebben gevolgd, het enige verschil is in stap 2, waar we in plaats daarvan de Docker4Wordpress moeten klonen.

BELANGRIJK: Zorg ervoor dat deze regel niet is uitgecommentarieerd: NGINX_SERVER_ROOT: /var/www/html/web

Notities:

  1. U kunt de database importeren vanaf http://pma.d8base.docker.localhost/ vervang d8base door de naam van de map die in stap 1 is aangemaakt
  2. Uw site zou toegankelijk moeten zijn vanaf http://d8base.docker.localhost/ vervang d8base door de naam van de map die in stap 1 is aangemaakt
  3. Zorg ervoor dat poort 80 van uw machine niet wordt gebruikt door een andere applicatie/site voordat u dit tutorial volgt.
  4. Drupal: Als u drush-, composer- of drupal console-commando's wilt uitvoeren, voer dan het volgende commando uit: docker exec -it d8base_php /bin/bash en cd web vervang d8base door de naam van de map die in stap 1 is aangemaakt
  5. Als u de versie van de composer naar versie 1 wilt downgraden, voer dan het volgende uit: composer self-update --1
  6. Mogelijk moet u het /etc/hosts-bestand bewerken en een vermelding toevoegen zoals: 127.0.0.1 d8base.docker.localhost
  7. BELANGRIJK: Elke keer dat docker opnieuw wordt gestart, moet u docker-compose -f traefik.yml up -d uitvoeren vanuit de traefik-map.
  8. Drupal: Zorg ervoor dat de database-informatie correct is in uw settings.php-bestand. Het .env-bestand bevat deze informatie, en de standaardwaarden zouden er als volgt uit moeten zien:
$databases['default']['default'] = array (
  'database' => 'drupal',
  'username' => 'drupal',
  'password' => 'drupal',
  'prefix' => '',
  'host' => 'mariadb',
  'port' => '3306',
  'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
  'driver' => 'mysql',
);

Categorieën: