服务器是否在本地运行并接受套接字“ /var/run/postgresql/.s.PGSQL.5432”上的连接?

时间:2020-05-28 15:30:44

标签: python django postgresql docker

当我尝试通过以下方式启动docker时,我正在Windows 10上运行docker: docker-compose up --build 所有服务均已启用,但出现错误django.db.utils.OperationalError: 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"? 这是我的docker-compose.yml文件:

version: "3.4"

services:
  medicinesite:
    # container_name: medicine_app
    image: medicinesite
    build:
      context: .
      network: host
    stdin_open: true
    tty: true
    command: python manage.py runserver
    volumes:
      - .:/app
      # - /app/postgres_data
    ports:
      - 8000:8000
    depends_on:
      - postgres
  postgres:
    # container_name: medicine_db
    image: postgres:11
    volumes:
      - ./postgres_data:/var/lib/postgresql
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: postgres
    ports:
      - 5432:5432

这是我的Dockerfile:

FROM python:3.8

RUN mkdir /app
RUN mkdir /var/run/postgresql
RUN mkdir /var/lib/postgresql
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt

CMD ["gunicorn", "--bind", "0.0.0.0:8000", "medicinesite.wsgi"]
RUN ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

我尝试过的方法: -在/var/run/postgresql中创建目录 -在/var/lib/postgresql中创建目录 -将Requirements.txt中的psycopg2设置为:psycopg2==2.8.4 --no-binary psycopg2 -在Dockerfile中添加ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432 结果仍然相同,请提供任何帮助。

0 个答案:

没有答案