postgresql Docker:服务器是否在主机“localhost”(127.0.0.1)上运行[duplicate]

6tdlim6h  于 2022-11-23  发布在  PostgreSQL
关注(0)|答案(1)|浏览(169)

此问题在此处已有答案

How do I access postgresql within Docker with sqlalchemy?(3个答案)
4小时前关门。
我试图为我的fastAPI应用程序创建一个Docker容器。然而,每当我尝试运行以下合成文件时,我都会收到此错误:

错误

第一个
当我第一次看到错误时,我以为我在容器的本地主机上运行数据库,但我检查了一下,数据库正在0.0.0.0:5432上运行。
第一次

停靠文件

FROM python:3.10

WORKDIR /usr/src/app

COPY requirements.txt ./

RUN pip install --no-cache-dir -r requirements.txt 

COPY . .

CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]

撰写.YAML

version: '3'
services:
  api:
    image: fastapilearning
    depends_on:
      - postgres
    ports:
      - 80:8000
    environment:
      - ACCESSTOKENEXPIREMINUTE=${ACCESSTOKENEXPIREMINUTE}
      - ALGORITHM=${ALGORITHM}
      - DATABASEHOSTNAME=${DATABASEHOSTNAME}
      - DATABASENAME=${DATABASENAME}
      - DATABASEPASSWORD=${DATABASEPASSWORD}
      - DATABASEPORT=${DATABASEPORT}
      - DATABASEUSERNAME=${DATABASEUSERNAME}
      - SECRETKEY=${SECRETKEY}
    command: /bin/bash -c "alembic upgrade head && uvicorn app.main:app --host 0.0.0.0 --port 8000"
  
  postgres:
    image: postgres
    environment:
      - POSTGRES_PASSWORD=${DATABASEPASSWORD}
      - POSTGRES_DB=${DATABASENAME}
    volumes:
      - C:\Users\booruledie\Documents\Git\freecodecamp\dockerPostgresData\:/var/lib/postgresql/data

有什么问题吗?
我很确定源代码,因为当我尝试在本地机器上运行它时,我没有得到任何错误。

jhdbpxl9

jhdbpxl91#

很可能是PostgreSQL服务器未正确关闭。
请尝试:

postgres -D /usr/local/var/postgres

您会看到:

FATAL:  lock file "postmaster.pid" already exists
HINT:  Is another postmaster (PID 449) running in data directory "/usr/local/var/postgres"?

然后关闭端口:

kill -9 PID

相关问题