Имеется такая структура проекта
├── backend
│ ├── hello
│ │ ├── hello
│ │ │ ├── asgi.py
│ │ │ ├── __init__.py
│ │ │ ├── settings.py
│ │ │ ├── urls.py
│ │ │ └── wsgi.py
│ │ ├── db.sqlite3
│ │ └── manage.py
│ ├── config
│ │ └── db
│ ├── Dockerfile
│ ├── entrypoint.sh
│ ├── Pipfile
│ └── Pipfile.lock
├── docker-compose.yml
Dockerfile:
spoiler
FROM python:3.10
RUN pip install pipenv
ENV PROJECT_DIR /opt/services/backend/src
RUN mkdir -p ${PROJECT_DIR}
WORKDIR ${PROJECT_DIR}
COPY Pipfile Pipfile.lock ${PROJECT_DIR}/
RUN pipenv install --system --deploy
COPY . ${PROJECT_DIR}
EXPOSE 8080
CMD ["/bin/bash", "entrypoint.sh"]
docker-compose.yml:
spoiler
version: '3'
services:
backend:
build: ./backend
ports:
- 8080:8080
depends_on:
- database
database:
image: postgres:14
container_name: database
env_file:
- ./backend/config/db/.env
ports:
- 5432:5432
volumes:
- ./db:/var/lib/postgres/data
entrypoint.sh:
gunicorn --chdir hello --bind :8080 hello.wsgi:application
Если выполнить
docker-compose build
docker-compose up -d
а затем попробовать зайти в контейнер с postgres
docker-compose run database /bin/bash
и ввести
psql -U postgres
то вылетает ошибка
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
Is the server running locally and accepting connections on that socket?
В этой директории действительно нет этого сокета, так же как и в /tmp (смотрел с ls -la).
В чём может быть проблема и как всё-таки запустить psql?