Entwicklungsumgebung/Fehlerhandbuch: Unterschied zwischen den Versionen

Aus Opencaching-Wiki
Zur Navigation springen Zur Suche springen
(+Leerzeile)
(neu: webpack-encore Meldung)
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 9: Zeile 9:




== Fehlermeldungen in Zusammenhang mit der Dockerumgebung ==
== Fehlermeldungen in Zusammenhang mit der DDEV-Testumgebung ==
==== Fehler “starting opencaching-webserver .. error” oder “Starting webserver ... error” ====
==== Fehler “ERROR: for opencaching-mariadb  Cannot start service mariadb: driver failed programming external connectivity on endpoint opencaching-mariadb [..] Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use” ====
Vermutlich läuft im Hintergrund bereits ein anderer Webservice auf Port 80.
Wenn beim 'ddev start' diese Fehlermeldung kommt, läuft im Hintergrund bereits ein anderer Webservice (z.B. mysql) auf Port 3306.


Prüfen kann man das mit:
Prüfen kann man das mit:
  netstat -tanp | grep :80
  netstat -tanp | grep :3306
 
Zum Beispiel ein mysql-Webserver kann gestoppt werden mit:
sudo mysqladmin -u root shutdown
 
 
==== [symfony/webpack-encore 4.x] Meldung “webpack-dev-server > rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported” (.. und ähnliche) ====
Diese Meldungen haben keine funktionelle Einschränkung und können aktuell ignoriert werden. Abhilfe ist das Upgrade auf symfony/webpack-encore 5.x oder höher.
 
 
==== [Yarn 1.x] Meldung “[DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.” ====
Diese Meldung hat keine funktionelle Einschränkung und kann aktuell ignoriert werden. Abhilfe ist das Upgrade auf Yarn 2.x oder höher.


Zum Beispiel ein apache2-Webserver kann gestoppt werden mit:
Hintergrund: Seit nodejs Version 22 wird die Funktion url.parse() als veraltet markiert. Yarn 1.xx nutzt sie, wird wohl aber kein Update mehr erhalten. In Yarn 2+ ist das Problem behoben, allerdings ist ein Umstieg mit größeren Aufwänden verbunden und wird aktuell nicht forciert.
sudo systemctl stop apache2


Damit der apache2 nach einem Rechnerneustart nicht erneut aktiviert wird, kann man ihn generell deaktivieren:
sudo systemctl disable apache2


Alternativ lässt sich auch eine [[https://docs.docker.com/compose/extends/|Override-Datei]] für die betroffenen Ports verwenden, was allerdings weitere Komplikationen mit sich führen kann (wie beispielsweise eine nicht funktionierende OKAPI). Aus diesem Grund sollte nach Möglichkeit das Stoppen der Standard-Services für Apache und einen Datenbank-Server vorgezogen werden.
== Fehlermeldungen beim Zugriff auf die Datenbank ==
==== Fehlermeldung “ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)” ====
Es wurde vergessen, den Namen der Datenbank in der Kommandozeile zu übergeben.
mysql -uroot -proot -hopencaching-db opencaching




==== Fehler “W: GPG error: https://dl.yarnpkg.com/debian stable InRelease: The following signatures were invalid: EXPKEYSIG“ ====
== Fehlermeldungen beim Zugriff auf die Testserverdomain(s) ==
Nach dem Ausführen von ./psh.phar docker:start kommt der Fehler. Hier ist das Zertifikat veraltet. Folgender Befehl löscht das Docker-Image.
==== Beim Anlegen/Editieren eines Listings funktioniert die Attributeauswahl nicht (betrifft Legacy-Testsystem) ====
docker-compose build --pull
Editiert man ein Listing, stehen nicht alle Attribute zur Verfügung bzw. es können nicht alle Attribute ausgewählt werden.  


Mit einen erneuten ./psh.phar docker:start läuft es wieder durch.
Abhilfe: (noch) keine Ahnung.




==== Fehler “ERROR: for opencaching-mariadb  Cannot start service mariadb: driver failed programming external connectivity on endpoint opencaching-mariadb [..] Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use” ====
==== Ein neu angelegter Benutzer kann sich nicht einloggen und wird immer wieder ohne Meldung auf die Login-Seite geleitet (betrifft Legacy-Testsystem) ====
Wenn beim docker:start diese Fehlermeldung kommt, läuft im Hintergrund bereits ein anderer Webservice (z.B. mysql) auf Port 3306.
Die exakte Ursache ist nicht bekannt. Abhilfe kann geschaffen werden, wenn beim entsprechenden Nutzer in der Datenbank in der Tabelle ''user'' das Feld ''permanent_login_flag'' auf ''1'' gesetzt wird.


Prüfen kann man das mit:
netstat -tanp | grep :3306


Zum Beispiel ein mysql-Webserver kann gestoppt werden mit:
==== Es kann kein Logbild hochgeladen werden (betrifft Legacy-Testsystem) ====
  sudo mysqladmin -u root shutdown
Sobald man ein Logbild hochladen möchte, erscheint eine Fehlermeldung
  <nowiki>Warning: move_uploaded_file(): Unable to move '/tmp/phpGmSzpi' to '/application/htdocs/config2/../images/uploads/700770A6-C101-11EA-BA77-0242AC120005.jpg' in /application/htdocs/lib2/logic/picture.class.php on line 856</nowiki>
Abhilfe: (noch) keine Ahnung. Die Bilder wurden aber trotzdem hochgeladen.




==== Fehler "The stream or file "/application/htdocs/var/logs/dev/dev.log" could not be opened: failed to open stream: Permission denied" oder ähnlich (betrifft Legacy-Testsystem) ====
==== Es kann nicht auf die Domains opencaching.ddev.site oder try-opencaching.ddev.site zugegriffen werden. ====
==== Oder: Fehler "Permission denied" beim Zugriff auf /htdocs/var/cache (betrifft Legacy-Testsystem) ====
Normalerweise sollte der Zugriff nach Installation der Testumgebung automatisch funktionieren. Sollte das nicht der Fall sein, kann mittels Anpassung der hosts-Datei ein Workaround geschaffen werden:
==== Oder: Fehler 500 (ohne weitere Angaben, warum) (betrifft Legacy-Testsystem) ====
<nowiki>127.0.0.1 opencaching.ddev.site
Hier scheint der Webserver keine Zugriffsberechtigung auf bestimmte Pfade/Dateien zu haben. Von einem Ändern der Zugriffsberechtigungen, z. B. mittels sudo chmod -R 777 ./var/log, sollte aus Sicherheitsgründen aber Abstand genommen werden.
127.0.0.1 try-opencaching.ddev.site</nowiki>


Helfen kann, die Befehlsfolge
./psh.phar docker:ssh
./psh.phar docker:init
exit
ein weiteres Mal auszuführen.


Falls dies weiterhin keinen Erfolg bringt, können folgende Schritte zum Ändern der Zugriffsberechtigungen angewandt werden:
==== Abschalten von “NOTICE”-Meldungen. (betrifft Legacy-Testsystem) ====
# Ermitteln der ID des Containers oc-server3_php-fpm mittels sudo docker ps.
Aufgrund diverser (Smarty- und PHP-)Updates werden vormals ignorierte Probleme nun mit einer “NOTICE”-Meldung kenntlich gemacht. Um die Meldungen zu unterdrücken, kann in das error_reporting Level geändert werden.
# Öffnen einer Shell im Container: sudo docker exec -it 45b6e4994fac /bin/bash, wobei 45b6e4994fac die ID des Containers ist.
# In der Container-Shell chmod -R 777 /application/htdocs/var/logs/dev/ ausführen.
# Die Container-Shell regulär mittels exit verlassen.


Beispiele für Fehlermeldungen:
<nowiki>Notice: Undefined index: error_password_not_ok in /app/htdocs/var/cache2/smarty/compiled/..
Notice: Trying to get property 'value' of non-object in /app/..</nowiki>


==== Host-Mismatch bei Aufruf der OKAPI mit Port-Override ====
Abhilfe:
Falls in einer Override-Datei Ports überschrieben werden (siehe oben), funktioniert die OKAPI möglicherweise nicht richtig - stattdessen erscheint ein Hinweis auf einen Port-Mismatch. Dies kann auf folgende Art und Weise behoben werden:
Bis Smarty 3.x: In der Datei /htdocs/vendor/smarty/smarty/libs/Smarty.class.php die Zeile mit $error_reporting ändern auf den nachfolgenden Code. Die Änderung ist nicht git-relevant und geht nach jedem “ddev init” verloren.
# Ermitteln der ID des Containers ''oc-server3_php-fpm'' mittels ''sudo docker ps''.
<nowiki>public $error_reporting = E_ALL & ~E_NOTICE;</nowiki>
# Öffnen einer Shell im Container: ''sudo docker exec -it 45b6e4994fac /bin/bash'', wobei 45b6e4994fac die ID des Containers ist.
# Im Container einen Editor installieren, beispielsweise nano. Da der Container auf Ubuntu basiert, funktioniert dies mittels ''apt-get update && apt-get install nano''.
# Die passende Konfigurationsdatei mittels des Editors im Container öffnen, beispielsweise mittels ''nano /application/htdocs/config2/settings.inc.php.''
# Setzen von ''$dev_baseurl = 'http://docker.team-opencaching.de:2200';'' und anschließendes Speichern der Datei. Hierbei ist 2200 der Port, der statt Port 80 für den Webserver in der Override-Datei konfiguriert worden ist.


Ab Smarty 3.x und 4.x: In der Datei /htdocs/lib2/common.inc.php die obere Zeile (PHP_DEBUG_ON) mit $error_reporting ändern auf den nachfolgenden Code. Die Änderung ist permanent und muss vor einem Commit rückgängig gemacht werden, da sie sonst im github Repository landet.
<nowiki>ini_set('error_reporting', E_ALL & ~E_NOTICE);</nowiki>


==== Während docker:init kommt es im Abschnitt (3/31) zu einer Meldung “> mysql -uroot -proot -hmariadb -e "DROP DATABASE IF EXISTS opencaching" ERROR 2005 (HY000): Unknown MySQL server host 'mariadb' (-3).“ ====
Abhilfe: ''./psh.phar docker:init'' darf nicht außerhalb des Dockercontainers aufgerufen werden.


==== Vorgehen zum Anlegen eines weiteren Benutzers (betrifft Legacy-Testsystem) ====
Zuerst via https://opencaching.ddev.site/register.php einen neuen Nutzer registrieren. Zwar kommt dann die Meldung, dass der Aktivierungscode per Mail zugsandt wurde, dies passiert aber nie. Der Aktivierungscode muss aus der Test-Datenbank ausgelesen werden.
Der Code steht in Tabelle ''user'' im Feld ''activation_code''.


==== Während docker:init kommt es im Abschnitt (13/31) zu einer Meldung “PHP Fatal error: .. __toString() must not throw an exception ..“ ====
Mit https://opencaching.ddev.site/activation.php gelangt man zur Account-Aktivierungsseite. Hier die E-Mail-Adresse und den aus der Datenbank kopierten Aktivierungscode eingeben. Der Account ist nun aktiviert, aber falls der Login nicht funktioniert: siehe andere Fehlermeldung hier auf der Seite weiter unten.
Die Ursache ist nicht bekannt. Hier hilft aktuell nur ein Workaround, in dem die Exception im Script auskommentiert wird.


Hierzu in der Datei ''../htdocs/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/AutowirePass.php'' die Zeile 236 ''throw new AutoWiringFailedException'' auskommentieren. Die Datei ist allerdings erst nach dem Ausführens von docker:init vorhanden.
Info: Eventuell wird in Zukunft der MailHog zum Laufen gebracht. Dann werden die vom Server verschickten Emails von diesem abgefangen und man kann die Informationen darin lesen.


Siehe auch Ticket: [[https://opencaching.atlassian.net/browse/OCC-90|OCC-90: Exception error during docker:init]]


== gelöste und veraltete Fehlermeldungen ==
==== [veraltet] Beim Anlegen des ''zweiten'' Cachelistings kommt eine Fehlermeldung (betrifft Legacy-Testsystem) ====
Bei einer ''leeren'' Datenbank funktioniert das Setzen und Hochzählen der OC-Codes nicht. Es muss einmal ein OC-Code von Hand gesetzt werden.


==== Docker Services neu initialisieren, z.B. bei “''W: GPG error:  stable InRelease: The following signatures were invalid: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>''“ ====
Hierzu auf dem Testserver ein Listing anlegen. Dann für diesen Cache in der Datenbank in der Tabelle ''caches'' das Feld ''wp_oc'' auf einen initialen Wert ändern, z.B. ''OC1234''.
Treten während eines docker:init neue, merkwürdige und nicht näher spezifizierbare Fehler auf, kann es helfen, die Dockercontainer neu zu initialisieren mittels:
docker-compose build --pull




==== z.B. bei Update auf Symfony 5.2 kommt während docker:start-clean der Fehler ''”mv: cannot stat '/root/.symfony/bin/symfony': No such file or directory Service 'webserver' failed to build: The command '/bin/sh -c mv /root/.symfony/bin/symfony /usr/local/bin/symfony' returned a non-zero code: 1"'' ====
==== [veraltet] Beim Erstellen/Speichern eines Cachelistings kommen mehrere  Fehlermeldungen, u.a. "Warning: A non-numeric value encountered in /app/htdocs/newcache.php on line 1025" (betrifft Legacy-Testsystem) ====
In diesem Fall in der Datei ''docker/httpd/Dockerfile'' die fehlerverursachende Zeile
[[Image:Fehlerhandbuch Domain 01.png|500px]]
  RUN mv /root/.symfony/bin/symfony /usr/local/bin/symfony
auskommentieren und docker:start-clean erneut laufen lassen.


Zuerst muss geschaut werden, ob eventuell der vorige Abschnitt ("Beim Anlegen des zweiten Cachelistings kommt eine Fehlermeldung") zutrifft. Wurden die dort beschriebenen Maßnahmen bereits umgesetzt, kommt es zwar trotzdem zur Fehlermeldung, das Listing wurde aber erfolgreich angelegt bzw. gespeichert. (Seite neu laden)


==== Während docker:start-clean: ''"\Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain()" not found'' ====
Dies ist ein Fehler in einem der ''doctrine/*'' Pakete (vermutlich ''doctrine/persistence'') in bestimmten Paketversionen. Hier hilft, die Datei ''/htdocs/vendor/doctrine/doctrine-bundle/Resources/config/orm.xml'' Zeile 32 zu editieren:
<parameter key="doctrine.orm.metadata.driver_chain.class">Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain</parameter>
zu
<parameter key="doctrine.orm.metadata.driver_chain.class">Doctrine\Persistence\Mapping\Driver\MappingDriverChain</parameter>


Allerdings muss dies zum richtigen Zeitpunkt passieren. Nachdem ''docker:start-clean'' aufgerufen wurde, kurz warten, bis die Pakete heruntergeladen wurden und noch bevor Abschnitt 13/32 anfängt, muss die Datei korrigiert und gespeichert worden sein.
==== [gelöst] Beim Löschen von Logs kommt eine Fehlermeldung "This log entry has been created on another Opencaching website. The cache can only be edited there." ====
Auf dem Testserver werden die Logs laut Datenbank (Tabelle ''cache_logs'', Spalte ''nodes'') als ''node=5'' gespeichert, obwohl es laut Tabelle ''nodes'' diese Ziffer gar nicht gibt.


Um Logs wieder über die normale Loglöschenfunktion löschen zu können, gibt es mehrere Möglichkeiten:
# In der Datenbanktabelle 'cache_logs' den Eintrag in Spalte 'nodes' auf 4 ändern. (Dies entspricht der 'Local Development'-Umgebung (siehe Tabelle 'nodes')).
# In der Datei '/dev-ops/local.team-opencaching.de/templates/config2-settings.inc.tpl.php' den Eintrag '$opt['logic']['node']['id'] = 5;' ändern auf '$opt['logic']['node']['id'] = 4;' und das docker:init Script ausführen
# Der Pull [[https://github.com/OpencachingDeutschland/oc-server3/pull/830|Pull Request #830 changed node information from 5 to 4]]  behebt das Problem.


==== Meldung “DEPRECATED: The legacy builder is deprecated and will be removed in a future release. Install the buildx component to build images with [[https://docs.docker.com/go/buildx/|BuildKit]] ====
Der Docker build Prozess wurde geändert. Die bisherige Methode wurde ab Dockerversion 23 als “deprecated” markiert und wird in einer zukünftigen Version entfernt. Siehe [[https://docs.docker.com/engine/deprecated/#legacy-builder-for-linux-images|Deprecated Engine Features]]


==== [veraltet] Das Länderauswahlfeld rechts oben auf der Seite ist leer und funktioniert nicht. (betrifft Legacy-Testsystem) ====
Alle php-Dateien im Cacheverzeichnis htdocs/var/cache2 müssen gelöscht werden.


==== Meldung “ERROR: BuildKit is enabled but the buildx component is missing or broken.“ ====
Das Vorgehen Unter Linux:
Docker Buildkit/buildx soll verwendet werden (DOCKER_BUILDKIT=1), wurde aber nicht installiert.
<nowiki>./psh.phar docker:stop
rm htdocs/var/cache2/*.inc.php
./psh.phar docker:start</nowiki>


Abhilfe: Buildkit/buildx Komponente installieren. Vorher müssen aber einige bereits installierte Pakete entfernt werden. Je nach OS gibt es unterschiedliche Anweisungen und Installationswege, siehe hier: [[https://docs.docker.com/engine/install/|Install Docker Engine]]


==== Während docker:start-clean: ''"Browserslist: caniuse-lite is outdated."'' ====
==== [gelöst] Die Übersetzungen funktionieren nicht. Meist wird nur Englischer Text angezeigt. (betrifft Legacy-Testsystem) ====
Scheinbar wird die “browserslist” nicht automatisch aktualisiert. (Grund? k.A.)
Die vorhandenen Fremdsprachen werden auf dem Testsystem nicht korrekt dargestellt. Meistens wird nur der Englische Text oder ein Mischmasch aus Englisch und eingestellter Sprache angezeigt.


Zum manuellen Update im Docker:ssh eingeben:
Abhilfe: im docker:start Skript wurde eine fehlende Komponente ergänzt, welche nun automatisch mitinstalliert wird. Dadurch werden die Sprachdateien korrekt erzeugt und die Übersetzungen funktionieren.
npx browserslist@latest --update-db
bzw.
npx update-browserslist-db@latest


Siehe auch: [[https://opencaching.atlassian.net/browse/RED-1278|RED-1278: Die Übersetzungen funktionieren auf dem Testserver nicht]]
Dieser Fehler sollte somit nicht mehr auftauchen.


== Fehlermeldungen beim Zugriff auf die Datenbank ==
==== Fehlermeldung “ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)” ====
Es wurde vergessen, den Namen der Datenbank in der Kommandozeile zu übergeben.
mysql -uroot -proot -hmariadb opencaching


==== [veraltet] Docker Services neu initialisieren, z.B. bei "''W: GPG error:  stable InRelease: The following signatures were invalid: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>''" ====
Treten während eines docker:init neue, merkwürdige und nicht näher spezifizierbare Fehler auf, kann es helfen, die Dockercontainer neu zu initialisieren mittels:
docker-compose build --pull


== Fehlermeldungen beim Zugriff auf die Testserverdomain ==
==== Vorgehen zum Anlegen eines weiteren Benutzers (betrifft Legacy-Testsystem) ====
Zuerst via http://docker.team-opencaching.de/register.php einen neuen Nutzer registrieren. Zwar kommt dann die Meldung, dass der Aktivierungscode per Mail zugsandt wurde, dies passiert aber nie. Der Aktivierungscode muss aus der Test-Datenbank ausgelesen werden.
Der Code steht in Tabelle ''user'' im Feld ''activation_code''.


Mit http://docker.team-opencaching.de/activation.php gelangt man zur Account-Aktivierungsseite. Hier die E-Mail-Adresse und den aus der Datenbank kopierten Aktivierungscode eingeben. Der Account ist nun aktiviert, aber falls der Login nicht funktioniert: siehe andere Fehlermeldung hier auf der Seite weiter unten.
==== [veraltet] Fehler "The stream or file "/application/htdocs/var/logs/dev/dev.log" could not be opened: failed to open stream: Permission denied" oder ähnlich (betrifft Legacy-Testsystem) ====
==== [veraltet] Oder: Fehler "Permission denied" beim Zugriff auf /htdocs/var/cache (betrifft Legacy-Testsystem) ====
==== [veraltet] Oder: Fehler 500 (ohne weitere Angaben, warum) (betrifft Legacy-Testsystem) ====
Hier scheint der Webserver keine Zugriffsberechtigung auf bestimmte Pfade/Dateien zu haben. Von einem Ändern der Zugriffsberechtigungen, z. B. mittels sudo chmod -R 777 ./var/log, sollte aus Sicherheitsgründen aber Abstand genommen werden.


Info: Eventuell wird in Zukunft der MailHog zum Laufen gebracht. Dann werden die vom Server verschickten Emails von diesem abgefangen und man kann die Informationen darin lesen.
Helfen kann, die Befehlsfolge
./psh.phar docker:ssh
./psh.phar docker:init
exit
ein weiteres Mal auszuführen.


Falls dies weiterhin keinen Erfolg bringt, können folgende Schritte zum Ändern der Zugriffsberechtigungen angewandt werden:
# Ermitteln der ID des Containers oc-server3_php-fpm mittels sudo docker ps.
# Öffnen einer Shell im Container: sudo docker exec -it 45b6e4994fac /bin/bash, wobei 45b6e4994fac die ID des Containers ist.
# In der Container-Shell chmod -R 777 /application/htdocs/var/logs/dev/ ausführen.
# Die Container-Shell regulär mittels exit verlassen.


==== Der neu angelegte Benutzer kann sich nicht einloggen und wird immer wieder ohne Meldung auf die Login-Seite geleitet (betrifft Legacy-Testsystem) ====
Die exakte Ursache ist nicht bekannt. Abhilfe kann geschaffen werden, wenn beim entsprechenden Nutzer in der Datenbank in der Tabelle ''user'' das Feld ''permanent_login_flag'' auf ''1'' gesetzt wird.


==== [veraltet] Fehler "starting opencaching-webserver .. error" oder "Starting webserver ... error" ====
Vermutlich läuft im Hintergrund bereits ein anderer Webservice auf Port 80.


==== Beim Anlegen des ''zweiten'' Cachelistings kommt eine Fehlermeldung (betrifft Legacy-Testsystem) ====
Prüfen kann man das mit:
Bei einer ''leeren'' Datenbank funktioniert das Setzen und Hochzählen der OC-Codes nicht. Es muss einmal ein OC-Code von Hand gesetzt werden.
netstat -tanp | grep :80


Hierzu auf dem Testserver ein Listing anlegen. Dann für diesen Cache in der Datenbank in der Tabelle ''caches'' das Feld ''wp_oc'' auf einen initialen Wert ändern, z.B. ''OC1234''.
Zum Beispiel ein apache2-Webserver kann gestoppt werden mit:
sudo systemctl stop apache2


Damit der apache2 nach einem Rechnerneustart nicht erneut aktiviert wird, kann man ihn generell deaktivieren:
sudo systemctl disable apache2


==== Beim Erstellen/Speichern eines Cachelistings kommen mehrere  Fehlermeldungen, u.a. “Warning: A non-numeric value encountered in /app/htdocs/newcache.php on line 1025” (betrifft Legacy-Testsystem) ====
Alternativ lässt sich auch eine [[https://docs.docker.com/compose/extends/|Override-Datei]] für die betroffenen Ports verwenden, was allerdings weitere Komplikationen mit sich führen kann (wie beispielsweise eine nicht funktionierende OKAPI). Aus diesem Grund sollte nach Möglichkeit das Stoppen der Standard-Services für Apache und einen Datenbank-Server vorgezogen werden.
[[Image:Fehlerhandbuch Domain 01.png|500px]]


Zuerst muss geschaut werden, ob eventuell der vorige Abschnitt (“Beim Anlegen des zweiten Cachelistings kommt eine Fehlermeldung“) zutrifft. Wurden die dort beschriebenen Maßnahmen bereits umgesetzt, kommt es zwar trotzdem zur Fehlermeldung, das Listing wurde aber erfolgreich angelegt bzw. gespeichert. (Seite neu laden)


==== [veraltet] Fehler "W: GPG error: https://dl.yarnpkg.com/debian stable InRelease: The following signatures were invalid: EXPKEYSIG" ====
Nach dem Ausführen von ./psh.phar docker:start kommt der Fehler. Hier ist das Zertifikat veraltet. Folgender Befehl löscht das Docker-Image.
docker-compose build --pull


==== Es kann kein Logbild hochgeladen werden (betrifft Legacy-Testsystem) ====
Mit einen erneuten ./psh.phar docker:start läuft es wieder durch.
Sobald man ein Logbild hochladen möchte, erscheint eine Fehlermeldung
<nowiki>Warning: move_uploaded_file(): Unable to move '/tmp/phpGmSzpi' to '/application/htdocs/config2/../images/uploads/700770A6-C101-11EA-BA77-0242AC120005.jpg' in /application/htdocs/lib2/logic/picture.class.php on line 856</nowiki>
Abhilfe: (noch) keine Ahnung. Die Bilder wurden aber trotzdem hochgeladen.




==== Bei Anlegen/Editieren eines Listings funktioniert die Attributeauswahl nicht (betrifft Legacy-Testsystem) ====
==== [veraltet] Host-Mismatch bei Aufruf der OKAPI mit Port-Override ====
Editiert man ein Listing, stehen nicht alle Attribute zur Verfügung bzw. es können nicht alle Attribute ausgewählt werden.  
Falls in einer Override-Datei Ports überschrieben werden (siehe oben), funktioniert die OKAPI möglicherweise nicht richtig - stattdessen erscheint ein Hinweis auf einen Port-Mismatch. Dies kann auf folgende Art und Weise behoben werden:
# Ermitteln der ID des Containers ''oc-server3_php-fpm'' mittels ''sudo docker ps''.
# Öffnen einer Shell im Container: ''sudo docker exec -it 45b6e4994fac /bin/bash'', wobei 45b6e4994fac die ID des Containers ist.
# Im Container einen Editor installieren, beispielsweise nano. Da der Container auf Ubuntu basiert, funktioniert dies mittels ''apt-get update && apt-get install nano''.
# Die passende Konfigurationsdatei mittels des Editors im Container öffnen, beispielsweise mittels ''nano /application/htdocs/config2/settings.inc.php.''
# Setzen von ''$dev_baseurl = 'http://docker.team-opencaching.de:2200';'' und anschließendes Speichern der Datei. Hierbei ist 2200 der Port, der statt Port 80 für den Webserver in der Override-Datei konfiguriert worden ist.


Abhilfe: (noch) keine Ahnung.


==== [veraltet] Meldung "DEPRECATED: The legacy builder is deprecated and will be removed in a future release. Install the buildx component to build images with [[https://docs.docker.com/go/buildx/|BuildKit]]" ====
Der Docker build Prozess wurde geändert. Die bisherige Methode wurde ab Dockerversion 23 als "deprecated" markiert und wird in einer zukünftigen Version entfernt. Siehe [[https://docs.docker.com/engine/deprecated/#legacy-builder-for-linux-images|Deprecated Engine Features]]


==== Das Länderauswahlfeld rechts oben auf der Seite ist leer und funktioniert nicht. (betrifft Legacy-Testsystem) ====
Alle php-Dateien im Cacheverzeichnis htdocs/var/cache2 müssen gelöscht werden.


Das Vorgehen Unter Linux:
==== [veraltet] Meldung "ERROR: BuildKit is enabled but the buildx component is missing or broken." ====
<nowiki>./psh.phar docker:stop
Docker Buildkit/buildx soll verwendet werden (DOCKER_BUILDKIT=1), wurde aber nicht installiert.
rm htdocs/var/cache2/*.inc.php
./psh.phar docker:start</nowiki>


Abhilfe: Buildkit/buildx Komponente installieren. Vorher müssen aber einige bereits installierte Pakete entfernt werden. Je nach OS gibt es unterschiedliche Anweisungen und Installationswege, siehe hier: [[https://docs.docker.com/engine/install/|Install Docker Engine]]


==== Es kann nicht auf die Domains docker.team-opencaching.de oder try.docker.team-opencaching.de zugegriffen werden. ====
Normalerweise sollte der Zugriff nach Installation der Testumgebung automatisch funktionieren. Sollte das nicht der Fall sein, kann mittels Anpassung der hosts-Datei ein Workaround geschaffen werden:
<nowiki>127.0.0.1 docker.team-opencaching.de
127.0.0.1 try.docker.team-opencaching.de</nowiki>


==== [veraltet] Während docker:init kommt es im Abschnitt (3/31) zu einer Meldung "> mysql -uroot -proot -hmariadb -e "DROP DATABASE IF EXISTS opencaching" ERROR 2005 (HY000): Unknown MySQL server host 'mariadb' (-3)." ====
Abhilfe: ''./psh.phar docker:init'' darf nicht außerhalb des Dockercontainers aufgerufen werden.


==== Abschalten von “NOTICE”-Meldungen. (betrifft Legacy-Testsystem) ====
Aufgrund diverser (Smarty- und PHP-)Updates werden vormals ignorierte Probleme nun mit einer “NOTICE”-Meldung kenntlich gemacht. Um die Meldungen zu unterdrücken, kann in das error_reporting Level geändert werden.


Beispiele für Fehlermeldungen:
==== [veraltet] Während docker:init kommt es im Abschnitt (13/31) zu einer Meldung "PHP Fatal error: .. __toString() must not throw an exception .." ====
<nowiki>Notice: Undefined index: error_password_not_ok in /app/htdocs/var/cache2/smarty/compiled/..
Die Ursache ist nicht bekannt. Hier hilft aktuell nur ein Workaround, in dem die Exception im Script auskommentiert wird.
Notice: Trying to get property 'value' of non-object in /app/..</nowiki>


Abhilfe:
Hierzu in der Datei ''../htdocs/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/AutowirePass.php'' die Zeile 236 ''throw new AutoWiringFailedException'' auskommentieren. Die Datei ist allerdings erst nach dem Ausführens von docker:init vorhanden.
Bis Smarty 3.x: In der Datei /htdocs/vendor/smarty/smarty/libs/Smarty.class.php die Zeile mit $error_reporting ändern auf den nachfolgenden Code. Die Änderung ist nicht git-relevant und geht nach jedem “./psh.phar docker:start-clean” verloren.
<nowiki>public $error_reporting = E_ALL & ~E_NOTICE;</nowiki>


Ab Smarty 3.x und 4.x: In der Datei /htdocs/lib2/common.inc.php die obere Zeile (PHP_DEBUG_ON) mit $error_reporting ändern auf den nachfolgenden Code. Die Änderung ist permanent und muss vor einem Commit rückgängig gemacht werden, da sie sonst im github Repository landet.
Siehe auch Ticket: [[https://opencaching.atlassian.net/browse/OCC-90|OCC-90: Exception error during docker:init]]
<nowiki>ini_set('error_reporting', E_ALL & ~E_NOTICE);</nowiki>




==== [gelöst] Die Übersetzungen funktionieren nicht. Meist wird nur Englischer Text angezeigt. (betrifft Legacy-Testsystem) ====
==== [veraltet] Während docker:start-clean: ''"\Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain()" not found'' ====
Die vorhandenen Fremdsprachen werden auf dem Testsystem nicht korrekt dargestellt. Meistens wird nur der Englische Text oder ein Mischmasch aus Englisch und eingestellter Sprache angezeigt.
Dies ist ein Fehler in einem der ''doctrine/*'' Pakete (vermutlich ''doctrine/persistence'') in bestimmten Paketversionen. Hier hilft, die Datei ''/htdocs/vendor/doctrine/doctrine-bundle/Resources/config/orm.xml'' Zeile 32 zu editieren:
<parameter key="doctrine.orm.metadata.driver_chain.class">Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain</parameter>
zu
<parameter key="doctrine.orm.metadata.driver_chain.class">Doctrine\Persistence\Mapping\Driver\MappingDriverChain</parameter>


Abhilfe: im docker:start Skript wurde eine fehlende Komponente ergänzt, welche nun automatisch mitinstalliert wird. Dadurch werden die Sprachdateien korrekt erzeugt und die Übersetzungen funktionieren.
Allerdings muss dies zum richtigen Zeitpunkt passieren. Nachdem ''docker:start-clean'' aufgerufen wurde, kurz warten, bis die Pakete heruntergeladen wurden und noch bevor Abschnitt 13/32 anfängt, muss die Datei korrigiert und gespeichert worden sein.


Siehe auch: [[https://opencaching.atlassian.net/browse/RED-1278|RED-1278: Die Übersetzungen funktionieren auf dem Testserver nicht]]
Dieser Fehler sollte somit nicht mehr auftauchen.


==== [veraltet] Während docker:start-clean: ''"Browserslist: caniuse-lite is outdated."'' ====
Scheinbar wird die "browserslist" nicht automatisch aktualisiert. (Grund? k.A.)


==== [gelöst] Beim Löschen von Logs kommt eine Fehlermeldung “This log entry has been created on another Opencaching website. The cache can only be edited there.” ====
Zum manuellen Update im Docker:ssh eingeben:
Auf dem Testserver werden die Logs laut Datenbank (Tabelle ''cache_logs'', Spalte ''nodes'') als ''node=5'' gespeichert, obwohl es laut Tabelle ''nodes'' diese Ziffer gar nicht gibt.
npx browserslist@latest --update-db
bzw.
npx update-browserslist-db@latest


Um Logs wieder über die normale Loglöschenfunktion löschen zu können, gibt es mehrere Möglichkeiten:
# In der Datenbanktabelle ‘cache_logs’ den Eintrag in Spalte ‘nodes’ auf 4 ändern. (Dies entspricht der ‘Local Development’-Umgebung (siehe Tabelle ‘nodes’)).
# In der Datei ‘/dev-ops/local.team-opencaching.de/templates/config2-settings.inc.tpl.php' den Eintrag ‘$opt['logic']['node']['id'] = 5;’ ändern auf '$opt['logic']['node']['id'] = 4;’ und das docker:init Script ausführen
# Der Pull [[https://github.com/OpencachingDeutschland/oc-server3/pull/830|Pull Request #830 changed node information from 5 to 4]]  behebt das Problem.


==== [veraltet] z.B. bei Update auf Symfony 5.2 kommt während docker:start-clean der Fehler ''"mv: cannot stat '/root/.symfony/bin/symfony': No such file or directory Service 'webserver' failed to build: The command '/bin/sh -c mv /root/.symfony/bin/symfony /usr/local/bin/symfony' returned a non-zero code: 1"'' ====
In diesem Fall in der Datei ''docker/httpd/Dockerfile'' die fehlerverursachende Zeile
  RUN mv /root/.symfony/bin/symfony /usr/local/bin/symfony
auskommentieren und docker:start-clean erneut laufen lassen.






[[Kategorie:Entwicklung|Fehlerhandbuch ]]
[[Kategorie:Entwicklung|Fehlerhandbuch ]]

Aktuelle Version vom 30. März 2026, 06:14 Uhr

Während der Installation der Programme oder Einrichtung der Testumgebung kann es zu diversen Fehlern und Meldungen kommen. Im Folgenden sind bereits bekannte Meldungen aufgelistet, die bei einer schnellen Behebung helfen sollen.


Fehlermeldungen während der Paketinstallation

Während der Installation der benötigten Pakete, kommt es zu einer Meldung, dass Abhängigkeiten mit dem ‘libdvd-pkg’ Paket nicht aufgelöst werden können

Eine Rekonfiguration des Pakets schafft Abhilfe:

sudo dpkg-reconfigure libdvd-pkg


Fehlermeldungen in Zusammenhang mit der DDEV-Testumgebung

Fehler “ERROR: for opencaching-mariadb Cannot start service mariadb: driver failed programming external connectivity on endpoint opencaching-mariadb [..] Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use”

Wenn beim 'ddev start' diese Fehlermeldung kommt, läuft im Hintergrund bereits ein anderer Webservice (z.B. mysql) auf Port 3306.

Prüfen kann man das mit:

netstat -tanp | grep :3306

Zum Beispiel ein mysql-Webserver kann gestoppt werden mit:

sudo mysqladmin -u root shutdown


[symfony/webpack-encore 4.x] Meldung “webpack-dev-server > rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported” (.. und ähnliche)

Diese Meldungen haben keine funktionelle Einschränkung und können aktuell ignoriert werden. Abhilfe ist das Upgrade auf symfony/webpack-encore 5.x oder höher.


[Yarn 1.x] Meldung “[DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.”

Diese Meldung hat keine funktionelle Einschränkung und kann aktuell ignoriert werden. Abhilfe ist das Upgrade auf Yarn 2.x oder höher.

Hintergrund: Seit nodejs Version 22 wird die Funktion url.parse() als veraltet markiert. Yarn 1.xx nutzt sie, wird wohl aber kein Update mehr erhalten. In Yarn 2+ ist das Problem behoben, allerdings ist ein Umstieg mit größeren Aufwänden verbunden und wird aktuell nicht forciert.


Fehlermeldungen beim Zugriff auf die Datenbank

Fehlermeldung “ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)”

Es wurde vergessen, den Namen der Datenbank in der Kommandozeile zu übergeben.

mysql -uroot -proot -hopencaching-db opencaching


Fehlermeldungen beim Zugriff auf die Testserverdomain(s)

Beim Anlegen/Editieren eines Listings funktioniert die Attributeauswahl nicht (betrifft Legacy-Testsystem)

Editiert man ein Listing, stehen nicht alle Attribute zur Verfügung bzw. es können nicht alle Attribute ausgewählt werden.

Abhilfe: (noch) keine Ahnung.


Ein neu angelegter Benutzer kann sich nicht einloggen und wird immer wieder ohne Meldung auf die Login-Seite geleitet (betrifft Legacy-Testsystem)

Die exakte Ursache ist nicht bekannt. Abhilfe kann geschaffen werden, wenn beim entsprechenden Nutzer in der Datenbank in der Tabelle user das Feld permanent_login_flag auf 1 gesetzt wird.


Es kann kein Logbild hochgeladen werden (betrifft Legacy-Testsystem)

Sobald man ein Logbild hochladen möchte, erscheint eine Fehlermeldung

Warning: move_uploaded_file(): Unable to move '/tmp/phpGmSzpi' to '/application/htdocs/config2/../images/uploads/700770A6-C101-11EA-BA77-0242AC120005.jpg' in /application/htdocs/lib2/logic/picture.class.php on line 856

Abhilfe: (noch) keine Ahnung. Die Bilder wurden aber trotzdem hochgeladen.


Es kann nicht auf die Domains opencaching.ddev.site oder try-opencaching.ddev.site zugegriffen werden.

Normalerweise sollte der Zugriff nach Installation der Testumgebung automatisch funktionieren. Sollte das nicht der Fall sein, kann mittels Anpassung der hosts-Datei ein Workaround geschaffen werden:

127.0.0.1	opencaching.ddev.site
127.0.0.1	try-opencaching.ddev.site


Abschalten von “NOTICE”-Meldungen. (betrifft Legacy-Testsystem)

Aufgrund diverser (Smarty- und PHP-)Updates werden vormals ignorierte Probleme nun mit einer “NOTICE”-Meldung kenntlich gemacht. Um die Meldungen zu unterdrücken, kann in das error_reporting Level geändert werden.

Beispiele für Fehlermeldungen:

Notice: Undefined index: error_password_not_ok in /app/htdocs/var/cache2/smarty/compiled/..
Notice: Trying to get property 'value' of non-object in /app/..

Abhilfe: Bis Smarty 3.x: In der Datei /htdocs/vendor/smarty/smarty/libs/Smarty.class.php die Zeile mit $error_reporting ändern auf den nachfolgenden Code. Die Änderung ist nicht git-relevant und geht nach jedem “ddev init” verloren.

public $error_reporting = E_ALL & ~E_NOTICE;

Ab Smarty 3.x und 4.x: In der Datei /htdocs/lib2/common.inc.php die obere Zeile (PHP_DEBUG_ON) mit $error_reporting ändern auf den nachfolgenden Code. Die Änderung ist permanent und muss vor einem Commit rückgängig gemacht werden, da sie sonst im github Repository landet.

ini_set('error_reporting', E_ALL & ~E_NOTICE);


Vorgehen zum Anlegen eines weiteren Benutzers (betrifft Legacy-Testsystem)

Zuerst via https://opencaching.ddev.site/register.php einen neuen Nutzer registrieren. Zwar kommt dann die Meldung, dass der Aktivierungscode per Mail zugsandt wurde, dies passiert aber nie. Der Aktivierungscode muss aus der Test-Datenbank ausgelesen werden. Der Code steht in Tabelle user im Feld activation_code.

Mit https://opencaching.ddev.site/activation.php gelangt man zur Account-Aktivierungsseite. Hier die E-Mail-Adresse und den aus der Datenbank kopierten Aktivierungscode eingeben. Der Account ist nun aktiviert, aber falls der Login nicht funktioniert: siehe andere Fehlermeldung hier auf der Seite weiter unten.

Info: Eventuell wird in Zukunft der MailHog zum Laufen gebracht. Dann werden die vom Server verschickten Emails von diesem abgefangen und man kann die Informationen darin lesen.


gelöste und veraltete Fehlermeldungen

[veraltet] Beim Anlegen des zweiten Cachelistings kommt eine Fehlermeldung (betrifft Legacy-Testsystem)

Bei einer leeren Datenbank funktioniert das Setzen und Hochzählen der OC-Codes nicht. Es muss einmal ein OC-Code von Hand gesetzt werden.

Hierzu auf dem Testserver ein Listing anlegen. Dann für diesen Cache in der Datenbank in der Tabelle caches das Feld wp_oc auf einen initialen Wert ändern, z.B. OC1234.


[veraltet] Beim Erstellen/Speichern eines Cachelistings kommen mehrere Fehlermeldungen, u.a. "Warning: A non-numeric value encountered in /app/htdocs/newcache.php on line 1025" (betrifft Legacy-Testsystem)

Zuerst muss geschaut werden, ob eventuell der vorige Abschnitt ("Beim Anlegen des zweiten Cachelistings kommt eine Fehlermeldung") zutrifft. Wurden die dort beschriebenen Maßnahmen bereits umgesetzt, kommt es zwar trotzdem zur Fehlermeldung, das Listing wurde aber erfolgreich angelegt bzw. gespeichert. (Seite neu laden)


[gelöst] Beim Löschen von Logs kommt eine Fehlermeldung "This log entry has been created on another Opencaching website. The cache can only be edited there."

Auf dem Testserver werden die Logs laut Datenbank (Tabelle cache_logs, Spalte nodes) als node=5 gespeichert, obwohl es laut Tabelle nodes diese Ziffer gar nicht gibt.

Um Logs wieder über die normale Loglöschenfunktion löschen zu können, gibt es mehrere Möglichkeiten:

  1. In der Datenbanktabelle 'cache_logs' den Eintrag in Spalte 'nodes' auf 4 ändern. (Dies entspricht der 'Local Development'-Umgebung (siehe Tabelle 'nodes')).
  2. In der Datei '/dev-ops/local.team-opencaching.de/templates/config2-settings.inc.tpl.php' den Eintrag '$opt['logic']['node']['id'] = 5;' ändern auf '$opt['logic']['node']['id'] = 4;' und das docker:init Script ausführen
  3. Der Pull [Request #830 changed node information from 5 to 4] behebt das Problem.


[veraltet] Das Länderauswahlfeld rechts oben auf der Seite ist leer und funktioniert nicht. (betrifft Legacy-Testsystem)

Alle php-Dateien im Cacheverzeichnis htdocs/var/cache2 müssen gelöscht werden.

Das Vorgehen Unter Linux:

./psh.phar docker:stop
rm htdocs/var/cache2/*.inc.php
./psh.phar docker:start


[gelöst] Die Übersetzungen funktionieren nicht. Meist wird nur Englischer Text angezeigt. (betrifft Legacy-Testsystem)

Die vorhandenen Fremdsprachen werden auf dem Testsystem nicht korrekt dargestellt. Meistens wird nur der Englische Text oder ein Mischmasch aus Englisch und eingestellter Sprache angezeigt.

Abhilfe: im docker:start Skript wurde eine fehlende Komponente ergänzt, welche nun automatisch mitinstalliert wird. Dadurch werden die Sprachdateien korrekt erzeugt und die Übersetzungen funktionieren.

Siehe auch: [Die Übersetzungen funktionieren auf dem Testserver nicht] Dieser Fehler sollte somit nicht mehr auftauchen.


[veraltet] Docker Services neu initialisieren, z.B. bei "W: GPG error: stable InRelease: The following signatures were invalid: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>"

Treten während eines docker:init neue, merkwürdige und nicht näher spezifizierbare Fehler auf, kann es helfen, die Dockercontainer neu zu initialisieren mittels:

docker-compose build --pull


[veraltet] Fehler "The stream or file "/application/htdocs/var/logs/dev/dev.log" could not be opened: failed to open stream: Permission denied" oder ähnlich (betrifft Legacy-Testsystem)

[veraltet] Oder: Fehler "Permission denied" beim Zugriff auf /htdocs/var/cache (betrifft Legacy-Testsystem)

[veraltet] Oder: Fehler 500 (ohne weitere Angaben, warum) (betrifft Legacy-Testsystem)

Hier scheint der Webserver keine Zugriffsberechtigung auf bestimmte Pfade/Dateien zu haben. Von einem Ändern der Zugriffsberechtigungen, z. B. mittels sudo chmod -R 777 ./var/log, sollte aus Sicherheitsgründen aber Abstand genommen werden.

Helfen kann, die Befehlsfolge

./psh.phar docker:ssh
./psh.phar docker:init
exit

ein weiteres Mal auszuführen.

Falls dies weiterhin keinen Erfolg bringt, können folgende Schritte zum Ändern der Zugriffsberechtigungen angewandt werden:

  1. Ermitteln der ID des Containers oc-server3_php-fpm mittels sudo docker ps.
  2. Öffnen einer Shell im Container: sudo docker exec -it 45b6e4994fac /bin/bash, wobei 45b6e4994fac die ID des Containers ist.
  3. In der Container-Shell chmod -R 777 /application/htdocs/var/logs/dev/ ausführen.
  4. Die Container-Shell regulär mittels exit verlassen.


[veraltet] Fehler "starting opencaching-webserver .. error" oder "Starting webserver ... error"

Vermutlich läuft im Hintergrund bereits ein anderer Webservice auf Port 80.

Prüfen kann man das mit:

netstat -tanp | grep :80

Zum Beispiel ein apache2-Webserver kann gestoppt werden mit:

sudo systemctl stop apache2

Damit der apache2 nach einem Rechnerneustart nicht erneut aktiviert wird, kann man ihn generell deaktivieren:

sudo systemctl disable apache2

Alternativ lässt sich auch eine [[1]] für die betroffenen Ports verwenden, was allerdings weitere Komplikationen mit sich führen kann (wie beispielsweise eine nicht funktionierende OKAPI). Aus diesem Grund sollte nach Möglichkeit das Stoppen der Standard-Services für Apache und einen Datenbank-Server vorgezogen werden.


[veraltet] Fehler "W: GPG error: https://dl.yarnpkg.com/debian stable InRelease: The following signatures were invalid: EXPKEYSIG"

Nach dem Ausführen von ./psh.phar docker:start kommt der Fehler. Hier ist das Zertifikat veraltet. Folgender Befehl löscht das Docker-Image.

docker-compose build --pull

Mit einen erneuten ./psh.phar docker:start läuft es wieder durch.


[veraltet] Host-Mismatch bei Aufruf der OKAPI mit Port-Override

Falls in einer Override-Datei Ports überschrieben werden (siehe oben), funktioniert die OKAPI möglicherweise nicht richtig - stattdessen erscheint ein Hinweis auf einen Port-Mismatch. Dies kann auf folgende Art und Weise behoben werden:

  1. Ermitteln der ID des Containers oc-server3_php-fpm mittels sudo docker ps.
  2. Öffnen einer Shell im Container: sudo docker exec -it 45b6e4994fac /bin/bash, wobei 45b6e4994fac die ID des Containers ist.
  3. Im Container einen Editor installieren, beispielsweise nano. Da der Container auf Ubuntu basiert, funktioniert dies mittels apt-get update && apt-get install nano.
  4. Die passende Konfigurationsdatei mittels des Editors im Container öffnen, beispielsweise mittels nano /application/htdocs/config2/settings.inc.php.
  5. Setzen von $dev_baseurl = 'http://docker.team-opencaching.de:2200'; und anschließendes Speichern der Datei. Hierbei ist 2200 der Port, der statt Port 80 für den Webserver in der Override-Datei konfiguriert worden ist.


[veraltet] Meldung "DEPRECATED: The legacy builder is deprecated and will be removed in a future release. Install the buildx component to build images with [[2]]"

Der Docker build Prozess wurde geändert. Die bisherige Methode wurde ab Dockerversion 23 als "deprecated" markiert und wird in einer zukünftigen Version entfernt. Siehe [Engine Features]


[veraltet] Meldung "ERROR: BuildKit is enabled but the buildx component is missing or broken."

Docker Buildkit/buildx soll verwendet werden (DOCKER_BUILDKIT=1), wurde aber nicht installiert.

Abhilfe: Buildkit/buildx Komponente installieren. Vorher müssen aber einige bereits installierte Pakete entfernt werden. Je nach OS gibt es unterschiedliche Anweisungen und Installationswege, siehe hier: [Docker Engine]


[veraltet] Während docker:init kommt es im Abschnitt (3/31) zu einer Meldung "> mysql -uroot -proot -hmariadb -e "DROP DATABASE IF EXISTS opencaching" ERROR 2005 (HY000): Unknown MySQL server host 'mariadb' (-3)."

Abhilfe: ./psh.phar docker:init darf nicht außerhalb des Dockercontainers aufgerufen werden.


[veraltet] Während docker:init kommt es im Abschnitt (13/31) zu einer Meldung "PHP Fatal error: .. __toString() must not throw an exception .."

Die Ursache ist nicht bekannt. Hier hilft aktuell nur ein Workaround, in dem die Exception im Script auskommentiert wird.

Hierzu in der Datei ../htdocs/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/AutowirePass.php die Zeile 236 throw new AutoWiringFailedException auskommentieren. Die Datei ist allerdings erst nach dem Ausführens von docker:init vorhanden.

Siehe auch Ticket: [Exception error during docker:init]


[veraltet] Während docker:start-clean: "\Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain()" not found

Dies ist ein Fehler in einem der doctrine/* Pakete (vermutlich doctrine/persistence) in bestimmten Paketversionen. Hier hilft, die Datei /htdocs/vendor/doctrine/doctrine-bundle/Resources/config/orm.xml Zeile 32 zu editieren:

<parameter key="doctrine.orm.metadata.driver_chain.class">Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain</parameter>

zu

<parameter key="doctrine.orm.metadata.driver_chain.class">Doctrine\Persistence\Mapping\Driver\MappingDriverChain</parameter>

Allerdings muss dies zum richtigen Zeitpunkt passieren. Nachdem docker:start-clean aufgerufen wurde, kurz warten, bis die Pakete heruntergeladen wurden und noch bevor Abschnitt 13/32 anfängt, muss die Datei korrigiert und gespeichert worden sein.


[veraltet] Während docker:start-clean: "Browserslist: caniuse-lite is outdated."

Scheinbar wird die "browserslist" nicht automatisch aktualisiert. (Grund? k.A.)

Zum manuellen Update im Docker:ssh eingeben:

npx browserslist@latest --update-db

bzw.

npx update-browserslist-db@latest


[veraltet] z.B. bei Update auf Symfony 5.2 kommt während docker:start-clean der Fehler "mv: cannot stat '/root/.symfony/bin/symfony': No such file or directory Service 'webserver' failed to build: The command '/bin/sh -c mv /root/.symfony/bin/symfony /usr/local/bin/symfony' returned a non-zero code: 1"

In diesem Fall in der Datei docker/httpd/Dockerfile die fehlerverursachende Zeile

 RUN mv /root/.symfony/bin/symfony /usr/local/bin/symfony

auskommentieren und docker:start-clean erneut laufen lassen.