WinFuture-Forum.de: Docker NextCloud - Postgres DB - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Linux
Seite 1 von 1

Docker NextCloud - Postgres DB


#1 Mitglied ist offline   olm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 136
  • Beigetreten: 25. Januar 05
  • Reputation: 0

geschrieben 17. November 2021 - 13:34

Hi Leute,

ich habe leider ein kleines Problem mit Docker und Postgres.

Folgendes Szenario:
Ich möchte NextCloud auf einem Raspberry laufen lassen.
NextCloud in Docker, verbunden mit einer Postgres DB außerhalb von Docker.

Folgendes Skript habe ich mir geschrieben:

sudo apt-get update
sudo apt-get upgrade

sudo apt install postgresql postgresql-contrib

#Neuen Nutzer für Postgres anlegen
sudo -u postgres createuser -P -d pi
#Neue DB anlegen mit Eigentümer pi
sudo -u postgres createdb -O pi pi
sudo -u postgres createdb -O pi nextcloud

#in der Conf "listen_adresses" freischalten '*'
sudo ne /etc/postgresql/11/main/postgresql.conf
## IPv4 local connections: host    all             all             0.0.0.0/0            md5
sudo ne /etc/postgresql/11/main/pg_hba.conf

sudo systemctl restart postgresql


#Docker Installation und Konfiguration------------------------------------------
#Speicherort der Volumes: /var/lib/docker/volumes/

curl -fsSL https://get.docker.com | sh
sudo docker pull nextcloud

#Webserverzeichnis anlegen
sudo mkdir /var/www/html/nextcloud

#NextCloud starten (Hinweis: Dauert ca. 3 Min)
sudo docker run -d -p 8080:80 --name nextcloud --restart unless-stopped -v /var/www/html/nextcloud:/var/www/html nextcloud 
	 
#Docker Logfile	 
sudo docker logs nextcloud



Folgendes Problem habe ich.
Bei der Initial Konfiguration von nextCloud über den Webbrowser kann ich Postgres auswählen. Wenn ich die Zugangsdaten, DB Name und Host inkl Port eingebe kommt die Meldung, dass ein interner Server Fehler aufgetreten ist. Wenn ich im Logfile (sudo ne /var/www/html/nextcloud/config/config.php) von NextCloud schaue sieht man, dass NextCloud keinen Zugriff auf die DB hat.

Wie bekomme ich es hin, dass nextCloud im Docker Zugriff auf Postgres außerhalb von Docker zugriff erhalte?

Ich bin über jeden Tipp dankbar.

vg
Olm
0

Anzeige



#2 Mitglied ist offline   redjack 

  • Gruppe: aktive Mitglieder
  • Beiträge: 284
  • Beigetreten: 29. Oktober 09
  • Reputation: 51

geschrieben 17. November 2021 - 18:18

Hallo

Ist PostgresSQL für den Fernzugriff konfiguriert?

CU
redjack
0

#3 Mitglied ist offline   der dom 

  • Gruppe: aktive Mitglieder
  • Beiträge: 578
  • Beigetreten: 14. Juni 12
  • Reputation: 73
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Mein Haus, meine IT, Programmierung

geschrieben 17. November 2021 - 21:34

Wie wäre es mit der Meldung? Da wird ein Code bei gewesen sein. Die Aussage "xxx hat keinen Zugriff darauf hab ich gelesen" nützt nicht viel.
Mit allem, was du tust, machst du offenkundig, mit welcher Einstellung du durch's Leben gehst. -- Steffen Glückselig
0

#4 Mitglied ist offline   olm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 136
  • Beigetreten: 25. Januar 05
  • Reputation: 0

geschrieben 18. November 2021 - 08:34

Beitrag anzeigenZitat (redjack: 17. November 2021 - 18:18)

Hallo

Ist PostgresSQL für den Fernzugriff konfiguriert?

CU
redjack


Puh, gute Frage


Ich habe die folgenden Dateien angepasst:
/etc/postgresql/11/main/postgresql.conf
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = 'localhost'          # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
port = 5432                             # (change requires restart)
max_connections = 100                   # (change requires restart)
#superuser_reserved_connections = 3     # (change requires restart)
unix_socket_directories = '/var/run/postgresql' # comma-separated list of directories
                                        # (change requires restart)
#unix_socket_group = ''                 # (change requires restart)



/etc/postgresql/11/main/pg_hba.conf

# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             0.0.0.0/0            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5




Eine Zeile aus dem Log
/var/www/html/nextcloud/data/nextcloud.log

{"reqId":"LggEYKzMTIw9MuNVDm5q","level":3,"time":"2021-11-18T07:20:30+00:00","remoteAddr":"10.10.10.2","user":"--","app":"index","method":"POST","url":"/index.php","message":"Failed to connect to the database: An exception occurred in the database: An exception occurred in the driver: SQLSTATE[08006] [7] could not connect to server: Connection refused\n\tIs the server running on host \"localhost\" (127.0.0.1) and accepting\n\tTCP/IP connections on port 5432 ?\ncould not connect to server: Cannot assign requested address\n\tIs the server running on host \"localhost\" (::1) and accepting\n\tTCP/IP connections on port 5432?","userAgent":"Mozilla/5.0 (Linux; Android 10; SM-G960F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.114 Mobile Safari/537.36","version":"22.2.2.0","exception":{"Exception":"OC\\DB\\Exceptions\\DbalException","Message":"Failed to connect to the database: An exception occurred in the driver: SQLSTATE[08006] [7] could not connect to server: Connection refused\n\tIs the server running on host \"localhost\" (127.0.0.1) and accepting\n\tTCP/IP connections on port 5432?\ncould not connect to server: Cannot assign requested address\n\tIs the server running on host \"localhost\" (::1) and accepting\n\tTCP/IP connections on port 5432?","Code":7,"Trace":[{"file":"/var/www/html/lib/private/DB/ConnectionAdapter.php","line":59 ,"function":"wrap","class":"OC\\DB\\Exceptions\\DbalException","type":"::","args":[{"__class__":"Doctrine\\DBAL\\Exception"}]},{"file":"/var/www/html/lib/private/legacy/OC_DB.php","line":55,"function":"prepare","class":"OC\\DB\\ConnectionAdapter","type":"->","args":["SHOW SERVER_VERSION",null,null]},{"file":"/var/www/html/lib/private/legacy/OC_DB.php","line":128,"function":"prepare","class":"OC_DB","type":"::","args":["SHOW SERVER_VERSION",null,null]},{"file":"/var/www/html/lib/private/legacy/OC_Util.php","line":971,"function":"executeAudited","class":"OC_DB","type":"::","args":[{"sql":"SHOW SERVER_VERSION","limit":null,"offset":null}]},{"file":"/var/www/html/lib/private/legacy/OC_Util.php","line":951,"function":"checkDatabaseVersion","class":"OC_Util","type":"::","args":[]},{"file":"/var/www/html/lib/base.php","line":656,"function":"checkServer","class":"OC_Util","type":"::","args":[{"__class__":"OC\\SystemConfig"}]},{"file":"/var/www/html/lib/base.php","line":1089,"function":"init","class":"OC","type":"::","args":[]},{"file":"/var/www/html/index.php","line":34,"args":["/var/www/html/lib/base.php"],"function":"require_once"}],"File":"/var/www/html/lib/private/DB/Exceptions/DbalException.php","Line":71,"Previous":{"Exception":"Doctrine\\DBAL\\Exception","Message":"Failed to connect to the database:An exception occurred in the driver: SQLSTATE[08006] [7] could not connect to server: Connection refused\n\tIs the server running on host \"localhost\" (127.0.0.1) and accepting\n\tTCP/IP connections on port 5432


Ich glaube der Dockercontainer (NextCloud) hat keinen Zugriff auf die Lokale Postgres DB.

Nur wie kann ich die beiden verbinden?

Dieser Beitrag wurde von olm bearbeitet: 18. November 2021 - 08:36

0

#5 Mitglied ist offline   redjack 

  • Gruppe: aktive Mitglieder
  • Beiträge: 284
  • Beigetreten: 29. Oktober 09
  • Reputation: 51

geschrieben 18. November 2021 - 09:18

Hallo,

Das sollte Dir helfen -> https://www.bigbinar...mote-connection

CU
redjack
0

#6 Mitglied ist offline   olm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 136
  • Beigetreten: 25. Januar 05
  • Reputation: 0

geschrieben 18. November 2021 - 14:14

Ich habe die Dateien angepasst, jedoch ohne Erfolg.

Um ehrlich zu sein verstehe ich auch nicht warum es nicht mit dem Localhost laufen soll. Docker und DB befinden sich ja auf dem gleichen System/Raspberry.

Ich denke, dass ich dem Docker sagen muss, dass er auf eine lokale DB zugreifen darf. Leider weiß ich nicht wie.


/etc/postgresql/11/main/postgresql.conf
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'          # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)




/etc/postgresql/11/main/pg_hba.conf

# IPv4 local connections:
host    all             all             0.0.0.0/0            md5


0

#7 Mitglied ist offline   redjack 

  • Gruppe: aktive Mitglieder
  • Beiträge: 284
  • Beigetreten: 29. Oktober 09
  • Reputation: 51

geschrieben 18. November 2021 - 15:35

Läuft der postgresql auf dem Port 5432?

Cu
redjack
0

#8 Mitglied ist offline   olm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 136
  • Beigetreten: 25. Januar 05
  • Reputation: 0

geschrieben 18. November 2021 - 15:51

Ich würde sagen ja.

nextcloud-db=> \conninfo
Sie sind verbunden mit der Datenbank »nextcloud-db« als Benutzer »pi« via Socket in »/var/run/postgresql« auf Port »5432«.


pi@raspberrypi:~ $ netstat -nlt
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:4711          0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
[b]tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN[/b]
tcp6       0      0 :::3389                 :::*                    LISTEN
tcp6       0      0 :::445                  :::*                    LISTEN
tcp6       0      0 ::1:4711                :::*                    LISTEN
tcp6       0      0 :::139                  :::*                    LISTEN
tcp6       0      0 :::5900                 :::*                    LISTEN
tcp6       0      0 :::8080                 :::*                    LISTEN
tcp6       0      0 :::80                   :::*                    LISTEN
tcp6       0      0 :::53                   :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 ::1:3350                :::*                    LISTEN
tcp6       0      0 ::1:631                 :::*                    LISTEN
[b]tcp6       0      0 :::5432                 :::*                    LISTEN[/b]


psql antwortet.


pi@raspberrypi:~ $ psql -l
                                   Liste der Datenbanken
     Name     | Eigentümer | Kodierung | Sortierfolge | Zeichentyp  |  Zugriffsprivilegien
--------------+------------+-----------+--------------+-------------+-----------------------
 nextcloud-db | pi         | UTF8      | de_DE.UTF-8  | de_DE.UTF-8 |
 pi           | pi         | UTF8      | de_DE.UTF-8  | de_DE.UTF-8 |
 postgres     | postgres   | UTF8      | de_DE.UTF-8  | de_DE.UTF-8 |
 template0    | postgres   | UTF8      | de_DE.UTF-8  | de_DE.UTF-8 | =c/postgres          +
              |            |           |              |             | postgres=CTc/postgres
 template1    | postgres   | UTF8      | de_DE.UTF-8  | de_DE.UTF-8 | =c/postgres          +
              |            |           |              |             | postgres=CTc/postgres
(5 Zeilen)






pi@raspberrypi:~ $ psql -d nextcloud-db
psql (11.14 (Raspbian 11.14-0+deb10u1))
Geben Sie »help« für Hilfe ein.

nextcloud-db=> \conninfo
Sie sind verbunden mit der Datenbank »nextcloud-db« als Benutzer »pi« via Socket in »/var/run/postgresql« auf Port »5432«.
nextcloud-db=>




Ich vermute, dass ich noch irgend einen Parameter beim Aufruf von Docker mitgeben muss.

sudo docker run -d -p 8080:80 --name nextcloud --restart unless-stopped -v /var/www/html/nextcloud:/var/www/html -e POSTGRES_DB=nextcloud-db -e POSTGRES_HOST=localhost nextcloud

Dieser Beitrag wurde von olm bearbeitet: 18. November 2021 - 15:47

0

#9 Mitglied ist offline   redjack 

  • Gruppe: aktive Mitglieder
  • Beiträge: 284
  • Beigetreten: 29. Oktober 09
  • Reputation: 51

geschrieben 18. November 2021 - 15:56

Hallo,

das sieht alles ganz gut aus

CU
redjack
0

#10 Mitglied ist offline   olm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 136
  • Beigetreten: 25. Januar 05
  • Reputation: 0

geschrieben 18. November 2021 - 16:32

ich HABE ES!!!!


sudo docker run -d -p 8080:80 --name nextcloud --restart unless-stopped -v /var/www/html/nextcloud:/var/www/html -e POSTGRES_DB=nextcloud-db --add-host=database:192.168.0.170 nextcloud


Mit --add-host bekommt der Docker erst Verbindung nach "außen".

192.168.0.170 ist die IP des "localhost"

Hier habe ich die Lösung gefunden:

https://qastack.com....stgres-database
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0