Wenn man schnell mal eine laufende Liferay Instanz benötigt, um etwas nachzusehen oder zu entwickeln, ist dies Docker sei Dank mittlerweile sehr einfach möglich.
Inhalt
- Allgemeines
- Vorbedingungen
- Sichten der existierenden Images
- Das Compose File
- Demo #1 – Initialisieren / Starten / Stoppen / Resetten des Containers
- Fazit
- Quellen
Allgemeines
Hinweis: Dieser Blogartikel beschreibt nur, wie man einen Docker Container auf Basis des offiziellen Liferay Images startet und gibt einige weiterführende Tipps. Dieser Container ist daher in der hier gezeigten Form nicht ohne weitere Anpassungen / Absicherungen (zB Reverse Proxy, Load Balancer,…) als Produktionssystem einzusetzen.
TLDR: Falls nur schnell mal ein Container gestartet werden soll empfehle ich nach lesen der Vorbedingungen zur Demo #1 zu springen.
Vorbedingungen
- Docker ist installiert
- Docker-Compose ist installiert (unter Windows und Mac automatisch bei Docker dabei)
- Verständnis Bedienung der Shell des Betriebssystems
- Ein grobes Verständnis von Docker, Compose und deren Befehlen ist hilfreich aber nicht zwingend notwendig
Sichten der existierenden Images
Erste Anlaufstelle für Images (=Baupläne für Container) ist hub.docker.com. Wenn wir dort nach Liferay suchen, finden sich gleich einige Images.
Da ich prinzipiell Freund von offiziellen Images bin, sehe ich mir grundsätzlich als erstes eben jene an. Sollte ich mit diesen Images nicht zufrieden sein, sehe ich mir die anderen existenten Images an, und falls für mich nichts interessantes dabei ist, baue ich mir ein auf meine Anforderungen zugeschnittenes Image.
Wenn wir uns das “liferay/portal” Image ansehen, dann ist dies das offizielle Image und auch sauber dokumentiert. Außerdem sehen wir, dass es einige Features bietet
Ich werde nicht weiter auf andere Images eingehen, da ich der Meinung bin, dass das offizielle Image für die meisten Anwendungsfälle sehr gut geeignet ist, bzw. es so wandelbar ist, dass man auf jeden Fall darauf aufbauen sollte.
Das Compose File
Docker-Compose ist ein Tool um (mehrere) Docker Container in einem File zu definieren. Man kann die Konfiguration in YAML Format ablegen und danach einfach mit einem Kommando ebendiesen Container erzeugen und starten.
Compose zu verwenden ist folgender Prozess:
- Ein gutes Docker-Image auf hub.docker.com finden oder selbst ein ein Image mittels
Dockerfile
erzeugen. - Alle benötigten Teil-Services im
docker-compose.yml
file definieren, so dass diese gemeinsam über einen einzigen Befehl gemeinsam gestartet werden können. - Mit
docker-compose up
das Service (und alle definierten Container) starten.
Ein simples Compose File sieht wie folgt aus (Hinweis: die Einrückungen müssen exakt eingehalten werden):
version: '3'
services:
liferay:
image: liferay/portal:7.1.2-ga3
ports:
- "8080:8080"
Das Portmapping (ports:) wird benötigt, um vom Hostsystem aus über http://127.0.0.1:8080/ auf das im Container laufende Liferay zugreifen zu können. Ist Port 8080 am Hostsystem belegt, kann man den Außenport (der erste) einfach auf etwas anderes ändern.
Demo #1 – Initialisieren / Starten / Stoppen / Resetten des Containers
Falls das Compose File nicht mit dem vorhergehenden Abschnitt erstellt wurde, sollte es von Bitbucket heruntergeladen (links im Menü unter Downloads) oder geclont (falls Git installiert ist) werden.
Hinweis: Da der Container keinen expliziten Namen gesetzt hat, wird der Verzeichnisname als 1. Teilphrase herangezogen. Daher macht es Sinn, die Dateien in ein sinnvoll benanntes Verzeichnis (zB: liferay-docker-demo) abzulegen oder einen Namen zu definieren.
Hinweis: Für MAC muss man unbedingt den maximalen Arbeitsspeicher von 2 GB auf zumindest 5-6 GB erhöhen, da ansonsten das System bereits beim Starten Probleme hat.
Den Container initialisieren / starten
- Ein Terminal in dem Verzeichnis des Projektes / Compose File öffnen
- Um den Server zu starten, folgendes Kommando ausführen (das Wort
sudo
wird nur für Linux Systeme benötigt und kann auf Windows und Mac ersatzlos weggelassen werden)sudo docker-compose up -d
- Warten bis Liferay gestartet ist, das braucht etwas Zeit 😉
- Einen Browser öffnen und auf http://127.0.0.1:8080/ navigieren
- Mit
test@liferay.com
/test
anmelden und Liferay nutzen
Die Logfiles ansehen
- Ein Terminal in dem Verzeichnis des Projektes / Compose File öffnen
- Um die Logfiles anzusehen, folgendes Kommando ausführen (das Wort
sudo
wird nur für Linux Systeme benötigt und kann auf Windows und Mac ersatzlos weggelassen werden)sudo docker logs -f liferaydockerdemo_liferay_1
- Um die Logfile Einsicht zu beenden drücken Sie
Ctrl + c
(das-f
im vorhergehenden Befehl bedeutet, dass endlos die neuesten Logeinträge angezeigt werden)
Container stoppen
- Ein Terminal in dem Verzeichnis des Projektes / Compose File öffnen
- Um den Container zu stoppen, folgendes Kommando ausführen (das Wort
sudo
wird nur für Linux Systeme benötigt und kann auf Windows und Mac ersatzlos weggelassen werden)sudo docker-compose stop
- Der Liferay Container stoppt jetzt, die Daten bleiben erhalten
Den Container verwerfen
- Ein Terminal in dem Verzeichnis des Projektes / Compose File öffnen
- Um den Container zu verwerfen, folgendes Kommando ausführen (das Wort
sudo
wird nur für Linux Systeme benötigt und kann auf Windows und Mac ersatzlos weggelassen werden)sudo docker-compose down
- Der Liferay Container wird nun entfernt alle nicht persistierten Daten werden verworfen
Fazit
Wir haben mit dem offiziellen Liferay Image sehr rasch und einfach eine lauffähige Liferay Instanz gestartet, ohne uns großartig um Konfigurationen etc. kümmern zu müssen.
In einem nachfolgenden Blogpost werde ich aufzeigen, wie flexibel das Image ist, und weshalb ich der Meinung bin, dass man auf diesem aufsetzen sollte.
Quellen
https://bitbucket.org/liferaysamples/liferay-docker-demo/