Docker: Redmine + Postgre

Status
Für weitere Antworten geschlossen.

jiesches

Benutzer
Mitglied seit
17. Mai 2020
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,

ich versuche Redmine zusammen mit PostgreSQL per Docker zum Laufen zu bringen. Sowohl Redmine funktioniert mit SQLite, als auch die Datenbank mit PostgreSQL scheint zu laufen. Allerdings kann Redmine keine Verbindung zu PostgreSQL herstellen. Irgendwie scheine ich etwas zu übersehen und hoffe ihr könnt mir helfen:

Ich habe alles per Docker GUI eingerichtet:

Abbilder:
- postgres:latest
- redmine:latest

Container postgres:
- Lokaler Port 8300, Container Port 5432
- Netzwerk: bridge
- Eigene Umgebungsvariablen:
-- POSTGRES_DB - postgres
-- POSTGRES_USER - postgres
-- POSTGRES_PASSWORD - meinPasswort

Mit dem Postgres-Container kann ich mich mit DBeaver verbinden. Host: 192.168.1.10 Port: 8300, Benutzer und Passwort entsprechend der Variablen.

Container Redmine:
- Lokaler Port 8600, Container Port 3000
- Netzwerk: bridge
- Eigene Umgebungsvariablen:
-- REDMINE_DB_DATABASE - postgres
-- REDMINE_DB_PORT - 8300
-- REDMINE_DB_POSTGRES - 192.168.1.10
-- REDMINE_DB_PASSWORD - meinPasswort
-- REDMINE_DB_USERNAME - postgres

Der Docker Container von Redmine wird nach der Ausführung unerwartet beendet und in den Logs steht:

Rich (BBCode):
rake aborted!

PG::ConnectionBad: could not connect to server: Connection timed out

	Is the server running on host "192.168.1.10" and accepting

	TCP/IP connections on port 8300?

/usr/local/bundle/gems/pg-1.1.4/lib/pg.rb:56:in `initialize'
/usr/local/bundle/gems/pg-1.1.4/lib/pg.rb:56:in `new'
...

Beides ist meiner Meinung nach der Fall und dementsprechend weiß ich leider nicht mehr weiter ...
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.468
Punkte für Reaktionen
356
Punkte
103
Bei Synology verwendet man für ein solches Konstrukt ein altes Relikt aus den Anfangszeiten von Docker: "links"

Einfach den Redmine-Container stoppen, "Bearbeiten" anklicken, den Reiter "Links" auswählen, mit "+" einen neuen Eintrag anlegen und dort die Postgres auswählen. Als Alias "db" (ohne die Anführungszeichen) eintragen.

Danach die Umwelt-Variable auf folgende Werte ändern:
- REDMINE_DB_POSTGRES: db
- REDMINE_DB_PORT: 5432

Danach findet eine direkt Container-zu-Container-Kommunikation über das Default-Bridged Netzwerk statt.

Im wahren Leben macht man das mit einem Custom-Bridged-Network, hängt beide Container in das Netzwerk und prophetiert von der DNS-Namensauflösung. Dann würde man bei REDMINE_DB_POSTGRES den Container-Namen angeben und könnte auf "Links" verzichten.
 

jiesches

Benutzer
Mitglied seit
17. Mai 2020
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Vielen Dank für die schnelle Antwort, leider hatte ich aber noch keinen Erfolg.

Der PostgreSQL Docker läuft:
2020-05-18 17:27:53.509 UTC [1] LOG: starting PostgreSQL 12.2 (Debian 12.2-2.pgdg100+1)
2020-05-18 17:27:53.509 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
2020-05-18 17:27:53.509 UTC [1] LOG: listening on IPv6 address "::", port 5432
2020-05-18 17:27:53.588 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PG
2020-05-18 17:27:53.794 UTC [1] LOG: database system is ready to accept connections

Dann habe ich den Redmine Container gelöscht und entsprechend deiner Anleitung neu angelegt:
- Links: postgres - db
- REDMINE_DB_POSTGRES: db
- REDMINE_DB_PORT: 5432
Username, Passwort, Datenbank wie bisher

Namensauflösung scheint zu funktionieren, Verbindung leider nicht. Was mache ich wohl falsch?
rake aborted!
PG::ConnectionBad: could not connect to server: Connection timed out
Is the server running on host "db" (172.17.0.3) and accepting
TCP/IP connections on port 5432?
/usr/local/bundle/gems/pg-1.1.4/lib/pg.rb:56:in `initialize'
/usr/local/bundle/gems/pg-1.1.4/lib/pg.rb:56:in `new'
...
 

jiesches

Benutzer
Mitglied seit
17. Mai 2020
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Tatsächlich, das war's! Das ist mir wirklich nicht eingefallen, vielen Dank für die schnelle und treffsichere Hilfe!!!

Habe nun den IP-Bereich der Docker-Container (172.17.0.1 - 172.17.0.255) für den Port 5432 ebenfalls freigegeben und auch ein erneutes Starten bei wieder aktivierter Firewall war erfolgreich.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat