ElasticSearch dient euch als Volltextsuche in Nextcloud. Alle, die keinen Bedarf daran haben, können diese Anleitung verwenden.
Nun zeige ich euch, wie ihr dies in wenigen Minuten mit Docker realisiert. Traefik dient uns hier als Reverse Proxy und stellt später den Dienst verschlüsselt per TLS bereit.
| Datum | Änderungen |
|---|---|
| 30.12.2020 | Erstellung dieser Anleitung. |
| 19.08.2021 | An die aktuelle Version 22.1.0 angepasst. |
| 21.08.2021 | Kleiner Fehler behoben |
| 12.01.2022 | Anleitung für aktuelle Nextcloud / ElaticSearch Version angepasst. Danke an @thegraubrot, @Detlef für die Hinweise. |
| 30.05.2023 | Anpassung an die aktuelle Version 26.01, Anpassung Traefik Labels |
0. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- TRAEFIK V2 + 3 – REVERSE-PROXY MIT CROWDSEC IM STACK EINRICHTEN
1. Ordner anlegen
Zuerst legen wir uns passende Ordner-Strukturen an.
mkdir -p /opt/containers/nextcloud/{database,app,daten,nextcloud-app,imagemagick}
mkdir -p /opt/containers/nextcloud/elasticsearch/data
chmod 777 -R /opt/containers/nextcloud/elasticsearch/data
2. Docker Compose anlegen
Nun legen wir die eigentliche Docker Datei an. Hierfür habe ich mir die offizielle Nextcloud Compose genommen und diese abgeändert für Traefik.
nano /opt/containers/nextcloud/docker-compose.yml
Inhalt
version: '3.3'
services:
nextcloud-db:
image: mariadb
container_name: nextcloud-db
command: --transaction-isolation=READ-COMMITTED --innodb_read_only_compressed=OFF
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /opt/containers/nextcloud/database:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=test #SQL root Passwort eingeben
- MYSQL_PASSWORD=test #SQL Benutzer Passwort eingeben
- MYSQL_DATABASE=nextcloud #Datenbank Name
- MYSQL_USER=nextcloud #SQL Nutzername
- MYSQL_INITDB_SKIP_TZINFO=1
- MARIADB_AUTO_UPGRADE=1
networks:
- default
nextcloud-redis:
image: redis:alpine
container_name: nextcloud-redis
hostname: nextcloud-redis
networks:
- default
restart: unless-stopped
command: redis-server --requirepass test # Redis Passwort eingeben
nextcloud-app:
build: ./nextcloud-app
container_name: nextcloud-app
restart: unless-stopped
depends_on:
- nextcloud-db
- nextcloud-redis
environment:
TRUSTED_PROXIES: 172.16.255.254/16
OVERWRITEPROTOCOL: https
OVERWRITECLIURL: https://nextcloud.euredomain.de
OVERWRITEHOST: nextcloud.euredomain.de
REDIS_HOST: nextcloud-redis
REDIS_HOST_PASSWORD: test # Redis Passwort von oben wieder eingeben
volumes:
- ./app:/var/www/html
- ./imagemagick/policy.xml:/etc/ImageMagick-6/policy.xml
- ./daten:/var/www/html/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.nextcloud.entrypoints=websecure"
- "traefik.http.routers.nextcloud.rule=(Host(`nextcloud.euredomain.de`))"
- "traefik.http.routers.nextcloud.tls=true"
- "traefik.http.routers.nextcloud.tls.certresolver=http_resolver"
- "traefik.http.routers.nextcloud.service=nextcloud"
- "traefik.http.services.nextcloud.loadbalancer.server.port=80"
- "traefik.docker.network=proxy"
- "traefik.http.routers.nextcloud.middlewares=nextcloud-dav,default@file"
- "traefik.http.middlewares.nextcloud-dav.replacepathregex.regex=^/.well-known/ca(l|rd)dav"
- "traefik.http.middlewares.nextcloud-dav.replacepathregex.replacement=/remote.php/dav/"
networks:
- proxy
- default
elasticsearch:
build: ./elasticsearch
container_name: elasticsearch
restart: unless-stopped
environment:
- discovery.type=single-node
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./elasticsearch/data:/usr/share/elasticsearch/data
networks:
- default
networks:
proxy:
external: trueCode-Sprache: PHP (php)
Notwendige Anpassungen:
- MySQL Root Passwort ändern
- MySQL User Kennwort ändern
- MySQL User für Nextcloud ändern
- eure Domain bei Traefik anpassen (“nextcloud.euredomain.de”)
- OVERWRITECLIURL anpassen
- OVERWRITEHOST anpassen
3. Anpassungen für ImageMagick
ImageMagick wird verwendet um aus PDF Seiten Fotos zu erstellen. Diese können später per OCR erkannt werden. Es gibt derzeit wohl ein kleines Hindernis (Github Quelle) weshalb wir hier noch eine extra Anpassung vornehmen müssen.
nano /opt/containers/nextcloud/imagemagick/policy.xml
Inhalt:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policymap [
<!ELEMENT policymap (policy)+>
<!ATTLIST policymap xmlns CDATA #FIXED ''>
<!ELEMENT policy EMPTY>
<!ATTLIST policy xmlns CDATA #FIXED '' domain NMTOKEN #REQUIRED
name NMTOKEN #IMPLIED pattern CDATA #IMPLIED rights NMTOKEN #IMPLIED
stealth NMTOKEN #IMPLIED value CDATA #IMPLIED>
]>
<policymap>
<!-- <policy domain="system" name="shred" value="2"/> -->
<!-- <policy domain="system" name="precision" value="6"/> -->
<!-- <policy domain="system" name="memory-map" value="anonymous"/> -->
<!-- <policy domain="system" name="max-memory-request" value="256MiB"/> -->
<!-- <policy domain="resource" name="temporary-path" value="/tmp"/> -->
<policy domain="resource" name="memory" value="256MiB"/>
<policy domain="resource" name="map" value="512MiB"/>
<policy domain="resource" name="width" value="16KP"/>
<policy domain="resource" name="height" value="16KP"/>
<!-- <policy domain="resource" name="list-length" value="128"/> -->
<policy domain="resource" name="area" value="128MB"/>
<policy domain="resource" name="disk" value="1GiB"/>
<!-- <policy domain="resource" name="file" value="768"/> -->
<!-- <policy domain="resource" name="thread" value="4"/> -->
<!-- <policy domain="resource" name="throttle" value="0"/> -->
<!-- <policy domain="resource" name="time" value="3600"/> -->
<!-- <policy domain="coder" rights="none" pattern="MVG" /> -->
<!-- <policy domain="module" rights="none" pattern="{PS,PDF,XPS}" /> -->
<!-- <policy domain="delegate" rights="none" pattern="HTTPS" /> -->
<!-- <policy domain="path" rights="none" pattern="@*" /> -->
<!-- <policy domain="cache" name="memory-map" value="anonymous"/> -->
<!-- <policy domain="cache" name="synchronize" value="True"/> -->
<!-- <policy domain="cache" name="shared-secret" value="passphrase" stealth="true"/> -->
<!-- <policy domain="system" name="pixel-cache-memory" value="anonymous"/> -->
<!-- <policy domain="system" name="shred" value="2"/> -->
<!-- <policy domain="system" name="precision" value="6"/> -->
<!-- not needed due to the need to use explicitly by mvg: -->
<!-- <policy domain="delegate" rights="none" pattern="MVG" /> -->
<!-- use curl -->
<policy domain="delegate" rights="none" pattern="URL" />
<policy domain="delegate" rights="none" pattern="HTTPS" />
<policy domain="delegate" rights="none" pattern="HTTP" />
<!-- in order to avoid to get image with password text -->
<policy domain="path" rights="none" pattern="@*"/>
<!-- disable ghostscript format types -->
<policy domain="coder" rights="none" pattern="PS" />
<policy domain="coder" rights="none" pattern="PS2" />
<policy domain="coder" rights="none" pattern="PS3" />
<policy domain="coder" rights="none" pattern="EPS" />
<policy domain="coder" rights="read | write" pattern="PDF" />
<policy domain="coder" rights="none" pattern="XPS" />
</policymap>Code-Sprache: HTML, XML (xml)
4. Anpassung für Nextcloud
In der aktuellen Version muss noch GhostScript in den Nextcloud Container hinzugefügt werden. Daher müssen wir uns den Container selbst bauen.
nano /opt/containers/nextcloud/nextcloud-app/Dockerfile
Inhalt:
FROM nextcloud
RUN apt-get update
RUN apt-get install -y ghostscript
RUN apt install -y libmagickwand-dev --no-install-recommends
RUN pecl install imagick; exit 0
RUN docker-php-ext-enable imagick
RUN rm -rf /var/lib/apt/lists/*Code-Sprache: JavaScript (javascript)
5. Anpassungen für ElasticSearch
Um die OCR Erkennung in ElasticSearch zu realisieren benötigen wir noch das Programm Tesseract. Daher müssen wir uns den ElasticSearch Container auch selbst bauen.
nano /opt/containers/nextcloud/elasticsearch/Dockerfile
Inhalt:
FROM elasticsearch:7.17.10
RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch ingest-attachment
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y tesseract-ocr tesseract-ocr-deu tesseract-ocr-engCode-Sprache: JavaScript (javascript)
Hier könnt ihr noch weitere Sprachen installieren zur OCR Erkennung. Eine Übersicht alles Sprachen findet ihr hier.
6. Nextcloud Server starten
Zuerst bauen wir uns alle Container zusammen.
cd /opt/containers/nextcloud
docker compose build
Den Server startet ihr wie gewohnt mit folgendem Befehl:
docker compose -f /opt/containers/nextcloud/docker-compose.yml up -d
7. Nextcloud einrichten
Nun müsst ihr auf “nextcloud.euredomain.de” gehen. Hier müsst ihr jetzt die Verbindung zur SQL Datenbank herstellen sowie einen Administrator für Nextcloud anlegen.
Zuerst klickt ihr auf “Speicher & Datenbank”.

Hier wählt ihr nun “MySQL/MariaDB” aus.

Jetzt solltet ihr folgendes sehen.

Gebt hier nun folgendes ein:
Administrator-Konto anlegen
- Benutzername: Wie euer Nextcloud Admin heißen soll
- Passwort: Wählt ein Passwort
Datenbank Verbindung herstellen
- Datenbank-Benutzer: Holt den Namen aus dem Docker Compose Datei
- Datenbank-Passwort: Holt das Passwort aus dem Docker Compose Datei
- Datenbank-Name: Haben wir in Docker Compose auf “nextcloud” festgelegt
- Datenbank-Host: Haben wir in Docker Compose auf “nextcloud-db” festgelegt

Wenn ihr anschließend auf “Installation abschließen” klickt, dauert es ca. 30 Sekunden, bis die Webseite neu lädt und Nextcloud fertig installiert ist. Ihr werdet dann so begrüßt.

8. Optimierungen
Wenn ihr nun unter “Einstellungen” -> “Übersicht” geht, solltet ihr feststellen, dass Nextcloud noch “Optimierungsbedarf” sieht. Dies wollen wir nun tun.

8.1 Standardtelefonregion festlegen
Dazu öffnet ihr folgende Datei:
nano /opt/containers/nextcloud/app/config/config.php
Fügt nun folgende Zeile hinzu:
'default_phone_region' => 'DE',Code-Sprache: PHP (php)
Dies setzt die Standardregion auf Deutschland. Beispiele dazu findet ihr hier. Nun könnt ihr die Datei wieder schließen.
8.2 Container neu starten
Nun starten wir Nextcloud neu um sicherzugehen, dass alle Einstellungen übernommen werden.
docker compose -f /opt/containers/nextcloud/docker-compose.yml down
docker compose -f /opt/containers/nextcloud/docker-compose.yml up -d
9. Collabora Office integrieren
Ich habe hier eine Anleitung geschrieben, wie ihr in wenigen Minuten Collabora Office mittels Docker installiert und in Nextcloud integrieren könnt. Collabora Office ermöglicht euch ein “komplettes online Office” innerhalb von Nextcloud.

10. ElasticSearch integrieren
Nun könnt ihr noch ElasticSearch integrieren. Dazu müsst ihr noch ein paar Apps in Nextcloud installieren. Meldet euch dazu als Administrator an.
10.1 Apps installieren
Klickt nun auf euren “Buchstaben” und wählt “Apps” aus.

Wählt nun hier “Suche” aus.

Nun installiert ihr folgende Apps:
- Full text search
- Full text search – Elasticsearch Platform
- Full text search – Files
- Full text search – Files – Tesseract OCR

10.2 Verbindung zu ElasticSearch herstellen
Nun müssen wir die Apps noch konfigurieren. Dazu klickt ihr auf euren “Buchstaben” und wählt “Einstellungen” aus.

Anschließend klickt ihr auf “Volltextsuche”.

Hier gebt ihr nun folgendes ein:



Ihr könnt die Einstellungen auch nach euren Wünschen anpassen.
Nun seid ihr in Nextcloud fertig.
10.3 Volltextsuche initialisieren
Nachdem ihr nun das Plugin eingerichtet habt müsst ihr noch die Suche initialisieren. Dazu gebt ihr folgenden Befehl ein:
docker exec --user www-data nextcloud-app php occ fulltextsearch:indexCode-Sprache: CSS (css)
Anschließend werden alle bisherigen Dateien initialisiert. Dies kann etwas dauern.


Nun könnt ihr alle Dateien suchen, die bisher erstellt wurden.
10.4 Neue Dateien initialisieren
Ihr müsst wissen, dass nur Dateien / Texte gesucht werden können, die bereits initialisiert wurden. Wenn ihr also nur 1x täglich eure Dateien initialisiert, dann könnt ihr die Daten / Texte also immer erst nach der nächsten Initialisierung nutzen.
Ihr habt 2 Möglichkeiten der Initialisierung:
- Dateien Live initialisieren
- Dateien zu einen festen Zeitpunkt initialisieren
10.4.1 Live initialisieren
Dazu gebt ihr folgenden Befehl ein:
docker exec --user www-data nextcloud-app php occ fulltextsearch:liveCode-Sprache: CSS (css)
Nun solltet ihr folgendes sehen:

Der Befehl wird jetzt innerhalb des Containers ausgeführt und ihr könnt mit “STRG+C” die Ausgabe abbrechen. Im Container läuft trotzdem noch alles weiter.
10.4.2 Zu einem festen Zeitpunkt initialisieren
Dazu erstellt ihr einen Cron Job. Gebt dazu folgendes ein:
crontab -e
Wählt nun folgendes aus:
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.tiny
Choose 1-2 [1]: 1Code-Sprache: JavaScript (javascript)
Nun gebt ihr folgendes ein:
0 5 * * * docker exec --user www-data nextcloud-app php occ fulltextsearch:indexCode-Sprache: CSS (css)
Durch diesen Code wird euer Server jeden Tag um 05:00 Uhr alle Dateien initialisieren. Weitere Einstellungen zu Cron findet ihr hier.
10.4.2 Zu einem festen Zeitpunkt initialisieren
Dazu erstellt ihr einen Cron Job. Gebt dazu folgendes ein:
crontab -e
Wählt nun folgendes aus:
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.tiny
Choose 1-2 [1]: 1Code-Sprache: JavaScript (javascript)
Nun gebt ihr folgendes ein:
0 5 * * * docker exec --user www-data nextcloud-app php occ fulltextsearch:indexCode-Sprache: CSS (css)
Durch diesen Code wird euer Server jeden Tag um 05:00 Uhr alle Dateien initialisieren. Weitere Einstellungen zu Cron findet ihr hier.
10.4.3 regelmäßig alle paar Minuten initialisieren
Dazu erstellt ihr einen Cron Job. Gebt dazu folgendes ein:
crontab -e
Wählt nun folgendes aus:
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.tiny
Choose 1-2 [1]: 1Code-Sprache: JavaScript (javascript)
Nun gebt ihr folgendes ein:
*/5 * * * * docker exec --user www-data nextcloud-app php occ fulltextsearch:index
Durch diesen Code wird euer Server alle 5 Minuten alle Dateien initialisieren. Weitere Einstellungen zu Cron findet ihr hier.
10.5 Volltextsuche nutzen
Nachdem ihr alles eingerichtet habt könnt ihr die Volltextsuche nutzen. Dazu klickt ihr oben auf die “Lupe” und gebt euren Suchbegriff ein.

11. Quellen
https://hub.docker.com/_/nextcloud/
https://teqqy.de/nextcloud-docker-tutorial-step-by-step-zum-erfolg/
https://nerdblog.steinkopf.net/2018/07/nextcloud-volltext-index-mit-docker-und-elasticsearch/
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
https://github.com/tesseract-ocr/tesseract
https://github.com/nextcloud/fulltextsearch/issues/584
https://github.com/nextcloud/files_fulltextsearch/issues/100

Hallo zusammen,
vielen Dank für die Mühen und die tolle Anleitung. Leider bekomme ich folgende Meldung im Browser nach dem ich alle Werte für User und DB angegeben habe und er angefangen hat Nextcloud zu installieren (Punkt 7):
Internal Server Error
The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.
Im LOG vom nextcloud-app ist folgendes zu finden:
Configuring Redis as session handler
=> Searching for scripts (*.sh) to run, located in the folder: /docker-entrypoint-hooks.d/before-starting
==> but the hook folder “before-starting” is empty, so nothing to do
AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 192.168.48.5. Set the ‘ServerName’ directive globally to suppress this message
AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 192.168.48.5. Set the ‘ServerName’ directive globally to suppress this message
[Mon Oct 16 07:57:43.642989 2023] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.57 (Debian) PHP/8.2.11 configured — resuming normal operations
[Mon Oct 16 07:57:43.643027 2023] [core:notice] [pid 1] AH00094: Command line: ‘apache2 -D FOREGROUND’
192.168.1.1 – – [16/Oct/2023:08:00:17 +0000] “GET /index.php/core/apps/recommended HTTP/1.1” 500 1658 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36”
Hat jemand eine Idee waran das liegen kann? Ich habe alles soweit wie in dre Anleitung beschrieben durchgeführt. Scheiter aber an diesem Punkt hier.
Besten Dank
Daniel
Vielen Dank für diese Anleitung. Ich komme soweit klar, aber an zwei Stellen geht es nicht voran. 1. Wenn ich meine Dokumente indiziere mit docker exec […] occ fulltextsearch:index läuft das zunächst eine halbe Stunde durch mit Statusanzeige, dann erscheint reproduzierbar die Fehlermeldung:
An unhandled exception has been thrown:
TypeError: OCA\Files_FullTextSearch\Service\FilesService::getInt(): Argument #2 ($arr) must be of type array, bool given, called in /var/www/html/custom_apps/files_fulltextsearch/lib/Service/FilesService.php on line 500 and defined in /var/www/html/custom_apps/fulltextsearch/vendor/artificial-owl/my-small-php-tools/lib/Traits/TArrayTools.php:102
Frau Google hat zu diesem Fehler nicht so eine richtige Lösung gebracht. Hast Du eine Idee?
2. Ein Großteil der Dateien scheint aber indiziert worden zu sein, wenn ich den Index stoppe und neu starte, fängt er nicht von vorne an. Aber nutze ich nun die Volltextsuche in der Nextcloud Webgui habe ich keinerlei Treffer auch nicht für offensichtlichste Suchworte. Wo kann ich da weitersuchen?
Anmerkung: Müsste der Port 9200 in der Elasticmaschine nicht im docker-compose.yaml expose: – ‘9200’ angegeben sein?
elastichsearch 8 wurde veröffentlicht,. Wann können wir mit einem Update der Anleitung rechnen?
Bei Docker-Compose Build kommt immer ein Fehler:
debconf: delaying package configuration, since apt-utils is not installed
und
-> Downloading ingest-attachment from elastic
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin requires additional permissions @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.lang.RuntimePermission accessClassInPackage.sun.java2d.cmm.kcms
* java.lang.RuntimePermission accessDeclaredMembers
* java.lang.RuntimePermission getClassLoader
* java.lang.reflect.ReflectPermission suppressAccessChecks
* java.security.SecurityPermission createAccessControlContext
See https://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.
Hallo zusammen,
bei mir funktioniert die Sache mit dem OCR nur, wenn die Pakete in der nextcloud-app installiert werden. Zur Info 🙂
FROM nextcloud:23.0.0
# FROM nextcloud:20.0.7-fpm
RUN apt-get update
RUN apt-get install -y ghostscript
#solve issues with imagemagick
RUN apt-get install -y libmagickcore-6.q16-6-extra
RUN apt-get install -y software-properties-common
#RUN add-apt-repository universe && apt upgrade
RUN apt-get install -y ffmpeg
RUN apt-get -y install ocrmypdf
RUN apt-get -y install tesseract-ocr
RUN apt-get -y install tesseract-ocr-deu
Viele Grüße
Jonas
ports:
– “9200:9200”
– “9300:9300”
Muss bei Elasticsearch in der docker-compose Datei raus!
Sonst ist Elasticsearch von extern erreichbar. Habe gerade zum Glück eine Info Mail von Hetzner bekommen:
> Sehr geehrte Damen und Herren,
>
> Elasticsearch ist eine Suchmaschine basierend auf Apache Lucene,
> welche hufig in Verbindung mit Web-Applikationen eingesetzt wird.
>
> Ist ein Elasticsearch-Server offen aus dem Internet erreichbar
> und nicht durch eine Authentifizierung geschtzt, knnen Angreifer
> nach Belieben die mittels Elasticsearch verwalteten Daten auslesen,
> modifizieren oder lschen. Dies ermglicht Angreifern ggf. das
> Aussphen von sensiblen Informationen. Weiterhin knnen Angreifer
> bei Elasticsearch bis zur Version 1.2.x beliebigen Programmcode
> auf dem Server ausfhren.
> Nachfolgend senden wir Ihnen eine Liste betroffener Systeme in Ihrem
> Netzbereich. Der Zeitstempel (Zeitzone UTC) gibt an, wann das System
> geprft und ein offener Elasticsearch-Server identifiziert wurde.
>
> Wir mchten Sie bitten, den Sachverhalt zu prfen und Manahmen zur
> Absicherung der Elasticsearch-Server auf den betroffenen Systemen
> zu ergreifen bzw. Ihre Kunden entsprechend zu informieren.
>
> Falls Sie krzlich bereits Gegenmanahmen getroffen haben und diese
> Benachrichtigung erneut erhalten, beachten Sie bitten den angegebenen
> Zeitstempel. Wurde die Gegenmanahme erfolgreich umgesetzt, sollten
> Sie keine Benachrichtigung mit einem Zeitstempel nach der Umsetzung
> mehr erhalten.
Ich hatte mit dem gebauten nextcloud-app Container das Problem, dass /var/www/html/data nicht angelegt oder beschrieben werden konnte.
Ich hatte das Verzeichnis vorher angelegt.
Verschiedene Tests mit geändertem Besitzer im hostFS oder Anpassung der UID im Container waren erfolglos.
Was am Ende geholfen hat: innerhalb des Containers den Eigentümer von /var/www/html/data auf www-data:root zu setzen.
Vielleicht wäre das noch was für das Dockerfile.
Elasticsearch – Log4Shell Problem
Die hier verwendete Version 7.10.1 weist lt. Docker Hub das Log4Shell-Problem auf. Mit der aktuellen Version 7.16.2 funktionieren die YUM – Befehle im Dockerfile nicht mehr. Scheint sich nunmer um ein Ubuntu 20.04 zu handeln. Mit den folgenden Abwandlungen funktioniert das Dockerfile wieder. Die Daten lassen sich auch indexieren. Sicherheitshalber habe ich apt-update und upt-upgrade eingefügt.
FROM elasticsearch:7.16.2
RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install –batch ingest-attachment
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y tesseract-ocr tesseract-ocr-deu tesseract-ocr-eng
Hallo, hätte hier jemand evtl. einen Rat für mich? Ich komme nicht weiter und weiß auch nicht mehr nach was ich suchen könnte. ;-(
Ich wäre sehr dankbar…Ausgabe von docker-compose:
nextcloud-app | Configuring Redis as session handler
nextcloud-db | /usr/local/bin/docker-entrypoint.sh: line 394: exec: –: not found
nextcloud-redis | 1:C 14 Nov 2021 01:41:09.132 # Fatal error, can’t open config file ‘/data/–’: No such file or directory
nextcloud-app | AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 172.18.0.3. Set the ‘ServerName’ directive globally to suppress this message
nextcloud-app | [Sun Nov 14 01:41:10.853753 2021] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.51 (Debian) PHP/8.0.12 configured — resuming normal operations
nextcloud-app | [Sun Nov 14 01:41:10.853793 2021] [core:notice] [pid 1] AH00094: Command line: ‘apache2 -D FOREGROUND’
nextcloud-db exited with code 127
nextcloud-redis exited with code 1
nextcloud-redis | 1:C 14 Nov 2021 01:41:09.132 # Fatal error, can’t open config file ‘/data/–’: No such file or directory
nextcloud-db exited with code 127
nextcloud-db | /usr/local/bin/docker-entrypoint.sh: line 394: exec: –: not found
nextcloud-redis exited with code 1
Fehlermeldung der Nextcloud eine Nachricht drüber.
Ganz lieben Dank und noch ein schönes Wochenende
So habe den Fehler in der Formatierung gefunden und “könnte” nun einen Admin User für Nextcloud anlegen.
Leider erhalte ich folgende Fehlermeldung (obwohl alles nach Anleitung durchgeführt):
Error while trying to create admin user: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution
Könnte mir jemand helfen und mir zu mindestens einen Tipp geben, was ich nun mal wieder falsch gemacht habe? Ganz vielen lieben Dank und Grüße
Marcel