Schritt für Schritt: Docker als XAMPP Alternative
Wer bisher unter Windows mit XAMPP [1] für die lokale Entwicklung mit Contao 4.x gearbeitet hat:
Hier eine alternative Vorgehensweise mit Docker Images/Container.
Grundsätzlich gehen die Angaben von einer funktionierenden Docker Umgebung aus - zumeist ein einfacher Installations-Aufruf.
Wer die "Docker Toolbox" mit Windows nutzt sollte zuvor [2|3|4] gelesen haben.
UPDATE Windows Nutzer:
Die unteren Angaben beziehen sich teilweise auf die "Docker Toolbox" welche mittlerweile nicht mehr gepflegt wird (Deprecated).
Die "Docker Desktop" Installation kann mittlerweile auf "Windows 10 Pro" und "Windows 10 Home" durchgeführt werden.
Als Terminal/Konsole für die folgenden Beispiele unter Windows setze ich GitBash [5] ein.
Wer die "Docker Toolbox" nutzt kann auch das "Docker Quickstart Terminal" nutzen.
Übersicht:
Update:
Informationen zur lokalen Docker/devilbox Nutzung findet Ihr auch in der Contao Dokumentation:
https://docs.contao.org/manual/de/an...tion/devilbox/
[1] Schritt für Schritt: Installation 4.X mit Windows7 u. Xampp 7.2.1
[2] Schritt für Schritt: Docker Nutzung
[3] Die Docker-VM in einer anderen Partition nutzen: "D:\..."
[4] Die Docker-VM optimieren (f. docker volumes auf Laufwerk "D:" u. Hauptspeicher erweitern)
[5] GitBash für Windows
Contao 4.8 - WebP Konvertierung mit der devilbox
Wer mit der devilbox die neue Contao Version 4.8 einsetzt und die WebP Konvertierung nutzen möchte
erhält möglicherweise unter "Bildgrößeneinstellungen/Experteneinstellungen" die Meldung:
"WEBP wird auf Ihrem Server nicht unterstützt".
Zur Zeit muß man dann in Contao auf das PHP-Modul "gd" umstellen/forcieren.
In der "config/config.yml" den Eintrag setzen:
Code:
contao:
image:
imagine_service: 'contao.image.imagine.gd'
Im Anschluß via CM/Console den Cache neu aufbauen.
Danke an @xchs für den Hinweis.
Hintergrund: s.: https://github.com/contao/contao/iss...ment-522223065
Contao Cache via devilbox Konsole aufbauen
Den Contao Cache mit der devilbox über die Konsole zu clearen ist zumeist schneller als via CM.
Daher einfach "bash shell.sh" ( im devilbox Hauptverzeichnis ) aufrufen um in den PHP-Container zu gelangen.
Wer die Docker-Toolbox mit GitBash nutzt erhält möglicherweise dann:
Code:
$ bash shell.sh
the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'
Dann eben einfach der Aufruf mit: winpty docker-compose exec --user devilbox php bash -l
Sie befinden sich dann im PHP-Container.
Mit "ls" sehen Sie die vorhanden Verzeichnisse Ihrer Webseite(n).
Wechseln Sie in das jeweilige Webseiten Verzeichnis z.B.: cd meineSeite und darin dann:
php vendor/bin/contao-console cache:clear
und
php vendor/bin/contao-console cache:warmup
( php ist hier bereits der korrekte alias der jeweiligen PHP-Cli Version - siehe auch: php -v )
Verlassen Sie den PHP-Container wieder über: exit
devilbox - Neue Version v.1.2.0
Liste der Anhänge anzeigen (Anzahl: 1)
devilbox.org virtualhost - "Auto DNS"
Wer mit der "Docker Toolbox" und dem aktuellen devilbox.org release Probleme mit den virtualhosts bzw. dem "Auto DNS" feaure hat.
Laut Doku muß in der .env die Variable "HOST_PORT_BIND" auf (Port) 53 gesetzt werden (Default Wert ist 1053)
und die devilbox dann neu gestartet werden. Der Port 53 darf nicht anderweitig belegt sein.
Bei mir (mit der Docker Toolbox) reichte dies nicht aus.
Ohne jetzt direkte Änderungen an den Einstellungen der entsprechenden Windows Netzwerkadapter vorzunehmen,
habe ich stattdessen in der VM der Virtualbox folgende Port Weiterleitungen gesetzt (s.Grafik):
In den Einstellungen der VM unter Netzwerk/Adapter 1/Erweitert/Port-Weiterleitung.
Anhang 23101
Damit sollte das devilbox Dashboard u.a. jetzt auch unter 127.0.0.1 erreichbar sein.
Bei mir klappte es dann auch mit dem "Auto DNS" feauture ...
devilbog SSL - Zertifikat:
Der Aufuf/Klick auf die jeweiligen virtualhost Einträge (z.B. testcontao48.loc) im Dashboard erfolgt leider via http, obwohl https von vorn herein unterstützt wird -
Also einfach mit https aufrufen.
In den Browsern muß dann noch das Zertifikat importiert werden - siehe: https://devilbox.readthedocs.io/en/l...lid-https.html
devilbox.org "Catch all" E-Mail Service
Das Dashboard der devilbox bietet einen "Catch All" E-Mail Service zum testen des lokalen E-Mail Versands (Im Dashboard Reiter Emails).
Allerdings können hierüber keine bestehenden E-Mail Einträge gelöscht werden.
Wird die Anzeige/Liste unübersichtlich kann man diese wie folgt entfernen:
In den docker PHP Container einklinken mit:
Code:
bash shell.sh (befindet sich im entsprechenden devilbox Verzeichnis)
bzw. mit
docker-compose exec --user devilbox php bash -l
Man befindet sich dann im Verzeichnis "/shared/httpd" (das entsprechend im Host gemounted wird).
Hier dann wechseln nach:
Code:
cd ../../var/mail
ls -a
Existieren Mail Einträge findet man hier den entsprechenden devilbox Eintrag.
Diesen dann einfach löschen und den Container verlassen:
Im Dashboard (Browser Refresh) sollten die Mail Einträge nicht mehr auftauchen ...
Docker und Windows 10 PRO
Hallo,
werde in Kürze einen neuen Rechner bestellen und würde da dann Windows 10 PRO kaufen.
Habt Ihr Erfahrungen mit Hyper-V/Docker unter Windows 10 PRO im Gegensatz zur Docker Toolbox Installation?
Gibt es da Besonderheiten/Fallstricke zur Contao Installation zu beachten (Symlinks etc.) ...
Danke
devilbox cron service in PHP Container
Hallo,
ich wollte einige cron jobs in dem devilbox PHP Container testen und wunderte mich das meine jobs gar nicht ausgeführt wurden.
Es hat sich heraus gestellt, das der cron service per default gar nicht gestartet ist. Also:
Code:
docker-compose exec --user devilbox php bash -l;
und dann
Code:
service cron status
Man kann den Service dann starten mit:
Code:
sudo service cron start
service cron status
Wen man das gleich beim Container Start ausführen möchte kann man dies in einer .sh Datei im devilbox "autostart" Verzeichnis hinterlegen - s.:
https://devilbox.readthedocs.io/en/l...ight=autostart
devilbox PHP Composer 2.0 Update
Sofern die neue PHP Composer version 2.0 (s.: https://blog.packagist.com/composer-...now-available/) noch nicht integraler Bestandteil ist (https://github.com/cytopia/devilbox/issues/736),
kannst du dir diese zwischenzeitlich in den laufenden devilbox Containern wie folgt aktualisieren:
Über die »shell.sh« der devilbox kannst du dich in den laufenden PHP Container anbinden - allerdings mit den Rechten entsprechend der .env Konfiguration.
Diese reichen für das compser Update nicht aus: s.: https://devilbox.readthedocs.io/en/l...to-become-root
Daher dann wie folgt:
Code:
composer -V
sudo composer selfupdate --2
composer -V