Hallo,
ich glaube, dass die drei Befehle nicht reichen.
Nach Ausführung wird nicht alles abgeräumt:
~# docker volume ls
DRIVER VOLUME NAME
local 9352f2c185978880fdec6cf26761c1bfd5b59eeb71ecf80418c9081f83d44abc
local egroupware-docker_data
local egroupware-docker_db
local egroupware-docker_extra
local egroupware-docker_push-config
local egroupware-docker_sessions
local egroupware-docker_sources
local egroupware-docker_sources-push
local egroupware-docker_videos
Und da bei der Installation standardmäßig die Datenbank in einem Container installiert wird, passt bei einer Neuinstallation das neue Datenbankpasswort nicht zu der alten DB im Volume.
Da ich die Datenbank vom Host verwenden will, rufe ich auf:
docker volume rm egroupware-docker_db
Außerdem bliebt dabei egroupware-collabora-key übrig. Eine Deinstallation schlägt mit der Meldung fehl:
Entfernen von egroupware-collabora-key (22.05.20220815-1) ...
Include /etc/egroupware-collabora-key/apache.conf removed from site 000-default.
conf
Include /etc/egroupware-collabora-key/apache.conf removed from site default-ssl.
conf
Job for apache2.service failed.
See "systemctl status apache2.service" and "journalctl -xe" for details.
invoke-rc.d: initscript apache2, action "force-reload" failed.
nginx: [emerg] open() "/etc/nginx/sites-enabled/egroupware.conf" failed (2: No s
uch file or directory) in /etc/nginx/nginx.conf:61
dpkg: Fehler beim Bearbeiten des Paketes egroupware-collabora-key (--remove):
»installiertes egroupware-collabora-key-Skript des Paketes pre-removal«-Unterpr
ozess gab den Fehlerwert 1 zurück
dpkg: Zu viele Fehler, Abbruch
Fehler traten auf beim Bearbeiten von:
egroupware-collabora-key
Bearbeitung wurde angehalten, da zu viele Fehler auftraten.
E: Sub-process /usr/bin/dpkg returned an error code (1)
Mittels
touch /etc/nginx/sites-enabled/egroupware.conf
kann man das Problem lösen und dann läuft die Deinstallation durch.
Danach rufe ich
apt install egroupware-docker
Die Installation von egroupware-collabora-key läuft auf einen Fehler, aber ein nachträgliches apt -f install korrigiert das dann.
Laut Log ist die Installation dann fehlerfrei durchgelaufen und ich kann auch auf über einen NGINX, den ich auf dem Host habe, auf egroupware zugreifen.
Jetzt versuche ich mittels docker-compose.override.yml den Zugriff auf meine Host-DB einzurichten.
Dazu trage ich in den docker-compose.override.yml folgendes ein:
volumes:
- /var/run/mysqld:/var/run/mysqld
- EGW_DB_HOST=localhost
db:
image: busybox
entrypoint: /bin/true
restart: "no"
Aus der /var/lib/egroupware/header.inc.php entnehme ich das Passwort für die egroupware-db
Retrying EGroupware installation in 3 seconds ...
PHP Fatal error: Uncaught Error: mysqli object is not fully initialized in /usr/share/egroupware/vendor/egroupware/adodb-php/drivers/adodb-mysqli.inc.php:258
Stack trace:
#0 /usr/share/egroupware/vendor/egroupware/adodb-php/drivers/adodb-mysqli.inc.php(258): mysqli_real_escape_string()
#1 /usr/share/egroupware/api/src/Db.php(1596): ADODB_mysqli->qstr()
#2 /usr/share/egroupware/api/src/Db.php(1703): EGroupware\Api\Db->quote()
#3 /usr/share/egroupware/api/src/Db.php(2193): EGroupware\Api\Db->column_data_implode()
#4 /usr/share/egroupware/api/src/Cache.php(738): EGroupware\Api\Db->select()
#5 /usr/share/egroupware/api/src/Cache/Files.php(52): EGroupware\Api\Cache::get_system_config()
#6 /usr/share/egroupware/api/src/Cache.php(691): EGroupware\Api\Cache\Files->__construct()
#7 /usr/share/egroupware/api/src/Cache.php(664): EGroupware\Api\Cache::get_provider()
#8 /usr/share/egroupware/api/src/Cache.php(298): EGroupware\Api\Cache::get_provider()
#9 /usr/share/egroupware/api/src/Cache.php(425): EGroupware\Api\Cache::getCache()
#10 /usr/share/egroupware/api/src/Translation.php(179): EGroupware\Api\Cache::getTree()
#11 /usr/share/egroupware/api/src/Translation.php(223): EGroupware\Api\Translation::init()
#12 /usr/share/egroupware/api/src/loader/exception.php(35): EGroupware\Api\Translation::translate()
#13 /usr/share/egroupware/api/src/loader/exception.php(66): try_lang()
#14 /usr/share/egroupware/api/src/loader/exception.php(101): _egw_log_exception()
#15 [internal function]: egw_exception_handler()
#16 {main}
thrown in /usr/share/egroupware/vendor/egroupware/adodb-php/drivers/adodb-mysqli.inc.php on line 258
Ich habe in der /etc/egroupware-docker/.env auch das root-Passwort von meiner Host-Datenbank eingetragen (was ich ziemlich unheimlich finde), aber der Fehler bleibt.
Irgendwas ist dort noch etwas faul. Ich bin auch bereit, ein Tutorial für das Szenario “Neuinstallation bei vorhandener Host-Datenbank” zu schreiben, um der Community etwas zurückzugeben. Mir scheint, das gibt es noch nicht, denn ich habe nichts gefunden. Oder kann man bei der Installation irgendwie angeben, dass man eine Host-Datenbank verwenden will?
Alternativ könnte ich auch ein Backup der Hostdatenbank in die Container-DB einspielen. Gibt es dafür vielleicht ein Tutorial.
Danke für alle Hinweise und Tips.
Ciao
Peter Schütt