OpenShift ermöglicht es, mit wenig Aufwand für den Entwickler seine Applikation zu deployen und zu betreiben. Die PaaS-Lösung nimmt dem Entwickler dabei Aufgaben wie das Bauen (z.B. kompilieren) und Deployen ab.
Nach einigem Tüfteln ist es uns mit dem folgenden einfachen Befehl gelungen, Drupal 8 in einer Basiskonfiguration auf OpenShift Origin laufen zu lassen:
oc new-app php~https://github.com/tobru/drupal-openshift.git#openshift mysql --group=php+mysql -e MYSQL_USER=drupal -e MYSQL_PASSWORD=drupalPW -e MYSQL_DATABASE=drupal
Auf den ersten Blick sieht dieser Befehl abschreckend aus, nimmt man ihn aber in seine einzelnen Bestandteile auseinander, macht er mehr Sinn:
- oc new-app: oc ist der Name des OpenShift Commandline Clients und new-app der Befehl um eine neue App zu deployen.
- php~https://github.com/tobru/drupal-openshift.git#openshift: Der String vor dem Tilde Zeichen gibt den Basis Docker Container an, um die Applikation mit S2I (Source to image) zu bauen. Danach kommt der Pfad zum Git Repository und mit dem Hash Zeichen wird die Referenz (z.B. Branch) angegeben.
- mysql: Hier wird ein weiterer Docker Container hinzugefügt. In diesem Fall ein MySQL Container.
- –group=php+mysql: Gruppiert diese beiden Container zu einem Pod.
- -e: Definiert Umgebungsvariablen, welche bei der Ausführung der Container zur Verfügung stehen.
Beim ersten Zugriff auf die Applikation startet der Drupal Installationsassistent. Anschliessend kann Drupal ganz normal verwendet werden.
Die Schwierigkeit bei diesem Experiment war, die richtigen Parameter zu finden und Drupal zur Zusammenarbeit zu bewegen. Unter anderem musste ein settings.php erstellt werden, da dies von Drupal verlangt wird. Auch musste im settings.php eine PHP-Einstellung angepasst werden.
Die hier vorgestellte Möglichkeit, Drupal 8 unter OpenShift zu betreiben, stellt nur einen Proof-of-Concept Status dar. Will man dies produktiv betreiben, gibt es noch einiges an Arbeit zu erledigen. Gerne unterstützen wir sie dabei.