首页 > 解决方案 > 使用 Postgres FATAL 运行 Docker:缓存查找失败

问题描述

我正在尝试使用 Postgres 数据库运行 Docker。我的 docker-compose.yml 部分如下所示:

db:
    image: postgres
    restart: always
    ports:
      - "5432:5432"
    environment:
      TZ: Europe/Berlin
      POSTGRES_DB: my-db
      POSTGRES_USER: my-db-user
      POSTGRES_PASSWORD: a23Kwum1Ql
    volumes:
      - db-data:/var/lib/postgresql/data
    networks:
      - main

当我docker-compose up在终端中运行时,我得到了错误FATAL: cache lookup failed for access method 403

我试图通过运行来抑制错误,然后通过先运行再运行docker-compose up -d来查看数据库文件夹。结果:该目录是空的,据我所知,它不应该是空的。docker exec -i myproject-master_db_1 bashls /etc/postgresql

我的数据库不包含任何重要数据,所以我也对完全重置数据库的解决方案感到高兴(我也尝试过,但显然失败了)。

标签: postgresqldocker

解决方案


您的卷必须是绝对的,例如 ``/app/to/your/db-data`。

环境将':'替换为“=”

然后确保您在运行 docker-compose 时获得了对卷/文件夹的正确访问权限

db:
    image: postgres
    restart: always
    ports:
      - "5432:5432"
    privilied: true                 # Add this line
    environment:
      - TZ=Europe/Berlin              # replace ':' to "="
      - POSTGRES_DB=my-db             # replace ':' to "="
      - POSTGRES_USER=my-db-user      # replace ':' to "="
      - POSTGRES_PASSWORD=a23Kwum1Ql  # replace ':' to "="
    volumes:
      - /app/to/your/db-data:/var/lib/postgresql/data # Update this line
    networks:
      - main

推荐阅读