#docker #docker-compose #psql
#docker #docker-compose #psql
Вопрос:
Я новичок в docker и postgres. Следует отметить, что моя проблема возникает только с docker-compose.Вот мой файл .yml:
version: '3.5'
services:
postgres:
container_name: postgres_container
image: postgres
environment:
POSTGRES_USER: ${POSTGRES_USER:-postgres}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
PGDATA: /data/postgres
volumes:
- postgres:/data/postgres
ports:
- "5432:5432"
networks:
- postgres
restart: unless-stopped
pgadmin:
container_name: pgadmin_container
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-pgadmin4@pgadmin.org}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
volumes:
- pgadmin:/root/.pgadmin
ports:
- "${PGADMIN_PORT:-5050}:80"
networks:
- postgres
restart: unless-stopped
networks:
postgres:
driver: bridge
volumes:
postgres:
pgadmin:**
Когда я запускаю docker-compose run postgres bash
, а затем запускаю psql -U postgres
, я получаю следующую ошибку
psql: error: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Кто-нибудь может помочь?
Комментарии:
1. Попробуйте TCP-соединение:
psql -U postgres -h localhost
Ответ №1:
При docker-compose run postgres bash
этом вы заменяете сценарий точки входа изображения на bash. Итак, БД не запущена. Попробуйте
$ docker-compose up --detach postgres
$ docker-compose exec postgres bash
вместо этого.
Комментарии:
1. Не могли бы вы, пожалуйста, пометить ответ как правильный?
Ответ №2:
Вы можете использовать: psql -U postgres -h postgres
укажите хост с созданной вами сетью.