docker-compose postgres pgadmin Lösung
Hier einen kurze Anleitung wie man die Aufgabe "postgres und pgadmin mit einem docker-compose" lösen kann.
Step für Step vorgehen
-
folgenden Text im Web editor fenster einbinden:
Passwörter etc. werden später in den Umgebungsvariablen gesetzt und nicht im text!
version: '3.8'
services:
postgres:
image: postgres:latest
environment:
POSTGRES_DB: $POSTGRES_DB
POSTGRES_USER: $POSTGRES_USER
POSTGRES_PASSWORD: $POSTGRES_PASSWORD
volumes:
- postgres_data:/var/lib/postgresql/data
# es ist nicht notwendig den port des postgres server nach aussen zu geben, im docker compose file kann freigegebene port direkt verwedet werden!
#ports:
# - "5432:5432"
restart: unless-stopped
pgadmin:
image: dpage/pgadmin4:latest
container_name: pgadmin
environment:
PGADMIN_DEFAULT_EMAIL: $PGADMIN_EMAIL
PGADMIN_DEFAULT_PASSWORD: $PGADMIN_PASSWORD
volumes:
- pgadmin_data:/var/lib/pgadmin
ports:
- "82:80"
restart: unless-stopped
depends_on:
- postgres
volumes:
postgres_data:
pgadmin_data:
-
Umgebungsvariablen setzen folgende Angababen müssen gesetzt werden:

-
anmelden bei pgadmin Du kanns dich am Port 82 an deinem localhost anmelden und solltest folgendes Fenster sehen:

Du kannst dich jetzt mit den Daten aus der Environmentkonfiguration mit PGADMIN_EMAIL und PGADMIN_PASSWORD anmelden.
- Verbindung zur Datenbank aufbauen
PGAdmin kennt jetzt deinen postgres Datenbankserver noch nicht. Du musst dich jetzt damit verbinden.

Servername eingeben. Der Name ist eigentlich Egal. Er sollte beschreiben um welchen Server / Datenbanksystem es sich handelt. Also wenn der Server local am standardport läuft ev. einfach local (default). Wenn er im Netzwerk läuft dann ev. den Servernamen angeben

Jetzt noch den Hostnamen angeben:
wichtig zu verstehen: jeder docker container hat seine eigene localhost adresse. Ihr befindet euch aktuell im pgAdmin container und somit müssst ihr den postgres servicename / Cotainername / Hostnamen angeben.
- der defaultport für postgres ist 5432.
- die Maintenance Datenbank ist meistens postgres. Diese Datenbank gibt es immer
- der Username kommt aus den Umgebungsvariablen
- das Passwort kommt aus den Umgebungsvariablen
- ich empfehle dir für die lokale Entwicklung das Passwort zu speichern
- Role und Service kannst du leer lassen
Jetzt solltest du du mit deinem Server / deiner Datenbank verbunden sein:




