Grav CMS kommt komplett ohne SQL-Datenbank aus und läßt sich kinderleicht installieren. Zusammen mit Docker, kann man daraus ein sehr schlankes Application Framework bauen. Der folgende Beitrag zeigt, wie man mit wenigen Handgriffen einen Docker Stack mit Grav CMS, Apache und PHP 7.4 erstellt.

GRAV CMS im Docker Container

Wie schon in meinem Beitrag „Docker: Apache, MySQL, PHP und PHPMyAdmin im Container-Verbund“ beschrieben, legen wir fast den gleichen Web Application Stack an, jedoch ohne die Docker Container für MySQL und PHPMyAadmin. Dazu benötigen wir die folgende Verzeichnisstruktur:

Da später alle Container über Docker Compose gestartet werden, erstellen wir zuerst die docker-compose.yml-Datei im Ordner “dstack”, neben dem Unterordner “docker”:

Alle Dienste ihre Standard-Ports. Alle wichtigen Daten werden in persistenten Ordnern ausserhalb der Container gespeichert (Volumes).

Apache

Als Nächstes generieren wir mit dem folgenden Befehl ein selbst signiertes SSL-Zertifikat und speichern dessen Dateien  im Ordner ./docker/apache/certs:

Für die Apache-Konfiguration legen wir folgende Datei an: ./docker/apache/my_vhost.conf:

Grav CMS

Für GRAV legen wir den Ordner ./docker/www an. In diesen Ordner wird der komplette GRAV CMS Verzeichnisbaum kopiert. Wichtig: Die .htaccess-Dateien müssen mit kopiert werden.

PHP 7.4

Für die PHP-Konfiguration erzeugen wir die folgende Datei in ./docker/php/php.ini:

Unter Anderem werden hier die ImageMagick extension aktiviert und XDebug konfiguriert. PHP ist damit ebenfalls komplett.

Über den Befehl

werden alle Docker-Container auf einmal gestartet und GRAV kann über https://127.0.0.1 aufgerufen werden.