docker-lamp mit eigenen _jorobo_ Projekten
Zur Erinnerung: Docker erleichtert die Verwaltung von Software in Containern. Docker Compose ist ein Tool, welches die Arbeit mit mehreren Containern vereinfacht.
Hier geht es um docker-lamp und konkrete darum, wie spezielle Domains erzeugt werden. docker-lamp ist eine Software die vorgefertigte Images, Container und Skripte bietet, die dich bei der Entwicklung auf einem Webserver unterstützen. Im diesem Abschnitt füge ich eines meiner Projekte hinzu.
Voraussetzungen
Neben Docker ist Docker Compose notwendig. Wenn du diesem Set bisher gefolgt bist, passt alles.
Eigene Projekte
Ich speichere meine Projekte im Verzeichnis /home/deinBenutzer/git
. Das Verzeichnis steht im Container zur Verfügung, weil ich es im Abschnitt docker-lamp einrichten mithilfe der docker-compose.override.yml
so eingestellt habe.
Eigene Projekte einbinden
Ein Beispielprojekt
Wer mein Beispiel nachvollziehen möchte, sollte das Beispielprojekt https://codeberg.org/astrid/j4examplecode.git
in sein Projektverzeichnis klonen.
$ git clone https://codeberg.org/astrid/j4examplecode.git
Klone nach 'j4examplecode' ...
...
Löse Unterschiede auf: 100% (6886/6886), fertig.
Then change to the directory of the example project and checkout the appropriate branch.
$ cd j4examplecode/
$ git checkout tutorial
Optional: Ein Projekt mit jorobo
Mein Projekt verwendet jorobo. So kann ich Funktionen nutzen, die auf eine Joomla Erweiterung zugeschnitten sind.
Wie man ein Projekt mit jorobo aufsetzt, habe ich in einer Präsentation beschrieben.
jorobo Funktionen
vendor/bin/robo build
- Baut aus der Erweiterung ein installierbares Joomla Paket oder eine Zip-Datei inklusive Ersetzungen wie das aktuelle Datum oder die Versionsnummer.vendor/bin/robo map
- Verlinkt (Symlink) die Erweiterung in eine laufende Joomla Installationvendor/bin/robo headers
- Aktualisiert die Copyright-Header aller Dateien des Quellverzeichnises. Dabei wird ein Header eingesetzt, welcher in derjorobo.ini
konfigurierbar ist.vendor/bin/robo bump
- Tauscht die Zeichenkette__DEPLOY_VERSION__
in jeder Datei im Quellverzeichnis mit der in derjorobo.ini
eingestellten Versionsnummer aus.
Um all diese Funktionen nutzen zu können, ist es erforderlich mit Composer PHP-Abhängigkeiten zu installieren.
Mit Composer PHP-Abhängikeiten installieren
Composer steht in den Containern ab PHP-Version 7.3 zur Verfügung. So kann ich mein Projekt, das im Container im Verzeichnis /home/astrid/git/j4examplecode
eingebunden ist, über den nachfolgendenen Befehl mit allen Abhängigkeiten versorgen.
$ docker exec -it --user 1000 -w /git/j4examplecode docker-lamp_php74 composer install
To call Composer in a container, Git must be installed:
docker exec -it docker-lamp_php81 apk add git
.
OCI runtime exec failed: exec failed: container_linux.go:370: starting container process caused: chdir to cwd ("/srv/git/j4examplecode") set in config.json failed: no such file or directory: unknown
weißt darauf hin, dass man sich im Pfad vertippt hat.
Projekte symlinken
Nachdem alle Abhängigkeiten über Composer installiert wurden, ist es möglich vendor/bin/robo map
zu verwenden. dieser Befehl verlinkt meine Joomla Erweiterung automatisch in eine Joomla installation.
Dazu wechsele ich nun wieder in mein Projektverzeichnis.
$ docker exec -it --user 1000 -w /git/j4examplecode docker-lamp_php74 ./vendor/bin/robo map /home/astrid/docker-lamp/data/www/joomla/j4dev
Projekte in Joomla entdecken (discovern)
Im Joomla Backend sind die Erweiterungen nun zum Entdecken bereit.