Da hast du ja schon mal erkannt, dass da eine Datenbank gefragt ist. Die ist natürlich nicht in dem Docker-Image.
Die Info wo die DB ist und wie die Zugangsdaten lauten müssen nun irgendwie übergeben werden. Wie das funktioniert kann ich auch nicht sagen. Ich verwende unsere Paket-Installationsscripte.
Aber das Thema ist schon einmal klar.
Stefan
Hallo Ralf,
Die Docker egw mit der QNAP-SQL funktionierte soweit.
DB wurde angelegt und gefüllt.
Jetzt fehlt wohl nur noch ein Webserver, da ich das Teil nicht erreichen konnte.
Da habe ich wohl noch ein wenig Arbeit.
Vielleicht ziehe ich mir aber auch eine VM hoch, ist wohl bestimmt weniger Arbeit.
Danke
Gruß
jochen
Hallo, darf ich mich in diesen thread einklinken?
Ich habe ebenfalls eine Qnap und Egrouware installiert.
Es ist mein erstes Mal das ich mich mit Docker beschäftige,
Wo teile ich dem Container mit welche Datenbank er nutzen soll?
Wenn ich den Container starte sehe ich auf der Console das er sofort eine Datenbank erreichen möchte, kann aber keine Konfiguration vornehmen.
In der erweiterten Einstellungen kann ich nur Pfade und Geräte zuweisen.
Pfade macht Sinn, solltest Du Dein bisheriges /var/lib/egroupware Verzeichnis zuweisen.
Ich würde mal erwarten, dass Du auch Environment Variablen setzen kannst. Damit kannst Du EGroupware die Datenbank zuweisen.
Allerdings ist es alleine Damit nicht getan, da EGroupware aus zwei Containern besteht, sprich Du musst noch den Nginx / Webserver als zweiten Container starten und die beiden verlinken.
Einfacher wäre wenn Du unser docker-compose.yml File verwenden könntest:
Darin findest Du auch die Namen der Environment Variablen für die Datenbank.
Ralf
Hallo Ralf,
ich habe einmal versucht ein paar Variablen im Punkt Umgebung einzurichten.
Allerdings geht scheinbar nur einmal wenn ein Container erstellt wurde.
Ein nachträgliches ändern bzw. hinzufügen der Variablen scheint bei qnap nicht vorgesehen zu sein.
Die docker-compose.yml lässt sich bei qnap wohl auch nicht nutzen.
Welcher nginx docker würdest du empfehlen?
Vielleicht liest Jochen ja noch mit und kann einmal kurz sagen wie er das gemacht hat.
Wenn Du docker-compose zur Verfügung hast kannst Du EGroupware ganz einfach auf der Qnap installieren.
Falls kein docker-compose von Qnap mitgeliefert wird, kann auch einfach ein kleines Shell Skript statt dessen verwenden, z.B. das von unserem docker-compose Paket (das startet docker-compose in einem Container):
Unser voll dokumentiertes docker-compose.yml File findest Du auf Github:
Ralf
Hallo Ralf,
docker-compose wird bei Qnap mitgeliefert.
Die docker-compose.yml habe ich nun etwas angepasst.
Wie im Qnap Forum habe ich auf der Qnap unter /share/container einen Ordner egroupware angelegt.
Meine Dateistruktur sieht nun so aus:
drwxrwxrwx 8 admin administrators 4.0K 2019-10-04 17:59 ./
drwxrwxrwx 7 admin administrators 4.0K 2019-10-04 15:42 …/
drwxrwxrwx 2 admin administrators 4.0K 2019-10-04 15:18 config/
drwxrwxrwx 3 33 33 4.0K 2019-10-04 17:55 data/
drwxrwx— 5 999 administrators 4.0K 2019-10-04 17:55 db/
-rw-rw-rw- 1 admin administrators 5.7K 2019-10-04 16:52 docker-compose.yml
drwxrwx— 2 admin administrators 4.0K 2019-10-04 17:04 extra/
-rw-rw-rw- 1 admin administrators 955 2019-10-04 17:56 install.sh
drwxrwxrwx 2 admin administrators 4.0K 2019-10-04 15:34 nginx/
drwxrwx— 34 admin administrators 4.0K 2019-10-04 17:04 sources/
Beim erstellen bekomme ich aber noch einen Fehler wenn der nginx Container erstellt wird:
[/share/container/egroupware] # docker-compose -f /share/container/egroupware/docker-compose.yml up -d
Creating egroupware-watchtower … done
Creating egroupware-db … done
Creating egroupware … done
Creating egroupware-nginx … error
ERROR: for egroupware-nginx Cannot start service nginx: oci runtime error: container_linux.go:265: starting container process caused “process_linux.go:368: container init caused “rootfs_linux.go:57: mounting \”/share/container/egroupware/nginx.conf\” to rootfs \"/share/CACHEDEV2_DATA/container/container-station-data/lib/docker/overlay2/756ef9f6ac317882c6889bff715b009972c207c742c538c529754e03ff1ae782/merged\" at \"/share/CACHEDEV2_DATA/container/container-station-data/lib/docker/overlay2/756ef9f6ac317882c6889bff715b009972c207c742c538c529754e03ff1ae782/merged/etc/nginx/conf.d/default.conf\" caused \“not a directory\”""
: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
ERROR: for nginx Cannot start service nginx: oci runtime error: container_linux.go:265: starting container process caused “process_linux.go:368: container init caused “rootfs_linux.go:57: mounting \”/share/container/egroupware/nginx.conf\” to rootfs \"/share/CACHEDEV2_DATA/container/container-station-data/lib/docker/overlay2/756ef9f6ac317882c6889bff715b009972c207c742c538c529754e03ff1ae782/merged\" at \"/share/CACHEDEV2_DATA/container/container-station-data/lib/docker/overlay2/756ef9f6ac317882c6889bff715b009972c207c742c538c529754e03ff1ae782/merged/etc/nginx/conf.d/default.conf\" caused \“not a directory\”""
: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
Meine Compose Datei würde ich auch gern hochladen, mir fehlen aber die Rechte.
Hier der Nginx Part aus dem Compose File:
-
nginx:
-
image: nginx:stable-alpine
-
volumes:
-
##- sources:/usr/share/egroupware:ro
-
- /share/container/egroupware/sources:/usr/share/egroupware:ro
-
# to add a certificate create a certificate.pem containing (in that order)
-
# 1. private key
-
# 2. public key
-
# 3. (optional) chain certificates
-
# uncomment to the next line
-
# ./certificate.pem:/etc/ssl/private/certificate.pem
-
# AND uncomment the three lines starting with "listen 443", "ssl_certificate", "ssl_certificate_key" in nginx.conf
-
##- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
-
- /share/container/egroupware/nginx:/etc/nginx/conf.d/default.conf:ro
-
ports:
-
# if no webserver is running on the host, change (first) number to 80 or 443
-
- "8083:80"
-
- "4443:443"
-
depends_on:
-
- egroupware
-
container_name: egroupware-nginx
Die Conf Datei wird in Zeile 14 definiert?
Wenn ich diese Zeile wie im Beispiel Zeile 13 nutze wird im egroupware Ordner auf der Qnap ein nginx.conf Ordner angelegt.
Was ich auch nicht verstehe ist, das jeder Container eine eigene IP Adresse bekommen hat.
Somit sollte es möglich sein in Zeile 17 und 18 die Standard Ports zu nutzen.
Das schlägt aber fehl weil die Ports angeblich schon verwendet werden.
Das stimmt für die Qnap aber nicht für die IP Adresse in dem der Container läuft.
Hallo Ralf, ok verstanden. Ich dachte die Compose Datei reicht. Es wird auch die nginx.conf benötigt.
Steht auch so in der Doku.
Zur Info, ich habe für jeden Versuch alle Docker Daten auch die Ordner leer gemacht.
Ich wollte vermeiden das ich unreproduzierbare Ergebnisse bekomme.
Nachdem ich verstanden habe das ich nun beide Files also docker-compose.yml und nginx.conf benötige habe ich versucht ohne weitere Änderung des compose Files die installation zu starten.
Dann wurden aber die Ordner nicht mit Daten gefüllt.
Also habe ich wieder die alte yml Datei mit Absoluten Pfaden genommen.
Das lief ja schon bis auf das der nginx nicht staten wollte.
Nachdem nun die nginx.conf mit im Verzeichnis ist. Startet auch der nginx.
Die Datebank wird gefüllt etc. leider wird mir noch kein login angezeigt.
Der Aufruf der Webseite zeigt mir noch: file not Found.
Die Docker Console vom nginx zeigt:
2019/10/05 19:11:56 [error] 8#8: *16 FastCGI sent in stderr: “Primary script unknown” while reading response header from upstream, client: 192.168.1.22,
server: _, request: “GET /egroupware/index.php HTTP/1.1”, upstream: “fastcgi://172.29.0.4:9000”, host: “192.168.1.25:8083”
Hallo Ralf, ich nutze das Original Compose File.
Die einzige Änderung die ich gemacht habe sind die Absoluten Pfade die ich eingetragen habe.
Vielleicht habe ich mich etwas missverständlich ausgedrückt.
Die Verzeichnisse werden mit den Absoluten Pfaden auch mit Daten gefüllt.
Wäre natürlich besser wenn ich keine Pfade eintragen müsste.
Hallo, die Datenbank wurde erstellt der Zugriff funktioniert.
Allerdings nur wenn ich die Datenbank von der QNAP nehme.
Der Nginx läuft auch die Container habe ich soweit untersucht.
Der Nginx hat die conf Datei ich ich ihm mit dem Composefile übermittelt habe.
Schaue ich im Nginx Container hat der Zugriff auf den Egroupwarer Container.
Soweit kann ich folgen.
Allerdings bekomme ich keine Loginseite angezeigt.
2019/10/09 16:19:02 [error] 9#9: *22 FastCGI sent in stderr: “Primary script unknown” while reading response header from upstream, client: 1
92.168.1.67, server: _, request: “GET /egroupware/index.php HTTP/1.1”, upstream: “fastcgi://172.29.0.4:9000”, host: “192.168.1.25:8083”
Habe ich jetzt noch etwas beim Konfigurieren übersehen oder fehlt im Compose File noch etwas?