postgresql - 使用 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 bash
ls /etc/postgresql
我的数据库不包含任何重要数据,所以我也对完全重置数据库的解决方案感到高兴(我也尝试过,但显然失败了)。
解决方案
您的卷必须是绝对的,例如 ``/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
推荐阅读
- webpack - Webpack SCSS 配置
- cuda - Fortran中使用PlanMany的cuFFT双精度误差
- regex - Python 3.6 - 正则表达式
- class - 将不同的声明类型传递给绑定过程 Fortran
- vb.net - 在 vb.net 中有多少种报告类型
- android - 在片段中,如何找到活动布局中定义的视图?
- spring - Spring Boot @RunWith(SpringRunner.class) 导致 InitializationError
- json - 带有值的输出键
- vb.net - 我的程序仅在一次 PC 中停止工作(第二次存储图片时)
- cocoapods - 确定 cocoapods 的安装方式