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?
Ich habe mir alle Docker Container angesehen.
Im Nginx sind Egroupware Dateien gemountet und im Egroupware Container ebenfalls.
Für mich sieht das erst einmal gut aus.
Kannst du mir sagen nach was ich suchen muss?
Welche Datei muss wo liegen?
Oder hilft es wenn ich hier von jedem Container ein df -m poste?
Hallo, ich habe es nun zum laufen bekommen.
Bei meinen Versuchen wurden eine Menge Ordner angelegt die man in der Qnap unter Volumes sehen konnte.
Diese habe ich alle weg gelöscht und noch einmal alles vorn von installiert, nun läuft es auf anhieb.
Sollte das hier jemand finden.
- per ssh auf die Qnap
cd /share/CACHEDEV2_DATA/container
mkdir egroupware
cd egroupware
mkdir config
mkdir data
mkdir db
mkdir extra
mkdir sources
wget https://raw.githubusercontent.com/EGroupware/egroupware/master/doc/docker/docker-compose.yml7
wget https://raw.githubusercontent.com/EGroupware/egroupware/master/doc/docker/nginx.conf3
In der docker-compse.yml den Port für Nginx anpassen, ich habe dort 8083 ausgewählt.
docker-compose up -d
und nach ein paar Minuten anmelden.
Die Anmeldedaten findet man unter data/egroupware-docker-install.log
Hallo Sven,
herzlichen Glückwunsch zu deinem Erfolg. Finde ich stark, dass du dich mit Ausdauer da durchgekämpft hast.
Könntest du bitte noch die Voraussetzungen bzw. deine Umgebung beschreiben?
Welche Modelle kommen in Frage, welcher Softwarestand ist nötig, usw… Das würde andere sicherlich auch interessieren.
Wir könnten das hier im Forum oder im GitHub-Wiki dokumentieren und dann auch im QNAP-Forum veröffentlichen.
Collabora Online und Rocket.Chat hast (noch) nicht integriert, oder?
Wie ist das für dich gefühlt von der Performance?
@jochene:
Wie weit bist du?
Gruß
Stefan