не получается настроить в docker-compose порт подключения к postgres через pgadmin4
задаю порт для контейнера 3002, a из pgadmin почему то подключаюсь к порту 5432 (также при попытке подключится к 3002 кидает ошибку)
конфиг в основном скапирован из доков elestio/pgadmin
version: ' v2.23.3-desktop.2'
services:
xy:
image: postgres:latest
restart: always
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
PGDATA: /var/lib/postgresql/data
volumes:
- ./data:/var/lib/postgresql/data
ports:
- '3002:5432'
pgadmin4:
image: elestio/pgadmin:latest
restart: always
environment:
PGADMIN_DEFAULT_EMAIL: [email protected]
PGADMIN_DEFAULT_PASSWORD: [email protected]
PGADMIN_LISTEN_PORT: 8080
ports:
- '8080:8080'
volumes:
- ./servers.json:/pgadmin4/servers.json
разве порт не должен быть 3002 ????
Ответы (2 шт):
Автор решения: FroggerProgger
→ Ссылка
Вот сделанный для вас docker compose:
version: 'v2.23.3-desktop.2'
services:
xy:
image: postgres:latest
restart: always
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
PGDATA: /var/lib/postgresql/data
volumes:
- ./data:/var/lib/postgresql/data
ports:
- '3002:5432'
pgadmin4:
image: elestio/pgadmin:latest
restart: always
environment:
PGADMIN_DEFAULT_EMAIL: [email protected]
PGADMIN_DEFAULT_PASSWORD: [email protected]
PGADMIN_LISTEN_PORT: 3002 # Измените порт прослушивания на 3002
ports:
- '8080:3002' # Пробросьте порт 3002 из контейнера pgadmin4 на порт 8080 хоста
volumes:
- ./servers.json:/pgadmin4/servers.json
У вас была ошибка с настройкой портов
Автор решения: Maksim Alekseev
→ Ссылка
Эти порты прокидываются для внешнего использования:
- Извне (вне докера) можно подключится к базе через port host-a
3002- который прокидывается на порт5432
ports:
- '3002:5432'
Это можно проверить указав:
ports:
- '3002:3002'
внутри контейнера в логах будет не измененный port 5432:
2024-02-05 22:59:12 2024-02-05 19:59:12.575 UTC [1] СООБЩЕНИЕ: для приёма подключений по адресу IPv4 "0.0.0.0" открыт порт 5432
2024-02-05 22:59:12 2024-02-05 19:59:12.575 UTC [1] СООБЩЕНИЕ: для приёма подключений по адресу IPv6 "::" открыт порт 5432
2024-02-05 22:59:12 2024-02-05 19:59:12.577 UTC [1] СООБЩЕНИЕ: для приёма подключений открыт Unix-сокет "/var/run/postgresql/.s.PGSQL.5432"
Что бы изменить port на котором работает база внутри сети докера,
можно указать параметр для контейнера postgresql:
environment:
PGPORT: '3002'
Тогда в логах будет нужный port 3002 и в pgadmin можно будет приконектиться к базе через него:
2024-02-05 23:08:46 2024-02-05 20:08:46.362 UTC [1] СООБЩЕНИЕ: для приёма подключений по адресу IPv4 "0.0.0.0" открыт порт 3002
2024-02-05 23:08:46 2024-02-05 20:08:46.363 UTC [1] СООБЩЕНИЕ: для приёма подключений по адресу IPv6 "::" открыт порт 3002
2024-02-05 23:08:46 2024-02-05 20:08:46.364 UTC [1] СООБЩЕНИЕ: для приёма подключений открыт Unix-сокет "/var/run/postgresql/.s.PGSQL.3002"

