gpt4 book ai didi

postgresql - Docker 无法识别 Postgresql 数据目录

转载 作者:IT老高 更新时间:2023-10-28 21:26:04 29 4
gpt4 key购买 nike

我正在拼命尝试让我继承的 Docker 项目启动并运行,而 Docker 给我带来了无穷无尽的问题。尝试启动我的容器时,我的 Postgresql 容器出现以下错误:

FATAL:  "/var/lib/postgresql/data" is not a valid data directory
DETAIL: File "/var/lib/postgresql/data/PG_VERSION" does not contain valid data.
HINT: You might need to initdb.

该项目是一个使用 Redis、ElasticSearch 和 Sidekiq 容器的 Rails 项目 - 它们都可以正常加载。

docker-compose.yml:

postgres:
image: postgres:9.6.2
environment:
POSTGRES_USER: $PG_USER
POSTGRES_PASSWORD: $PG_PASS
ports:
- '5432:5432'
volumes:
- postgres:/var/lib/postgresql/data

/var/lib/postgresql/data 归 postgres 用户所有(我应该相信),并且 postgresql 服务会自行启动并正常运行。

我尝试从 /usr/lib/postgresql/9.6/bin 目录以及 docker 运行 initdb (从 docker 似乎没有坚持甚至创造任何东西......如果有人知道我为什么有兴趣知道)

/var/lib/postgresql/data目录的内容:

drwxrwxrwx 19 postgres postgres  4096 Jun 28 20:41 .
drwxr-xr-x 5 postgres postgres 4096 Jun 28 20:41 ..
drwx------ 5 postgres postgres 4096 Jun 28 20:41 base
drwx------ 2 postgres postgres 4096 Jun 28 20:41 global
drwx------ 2 postgres postgres 4096 Jun 28 20:41 pg_clog
drwx------ 2 postgres postgres 4096 Jun 28 20:41 pg_commit_ts
drwx------ 2 postgres postgres 4096 Jun 28 20:41 pg_dynshmem
-rw------- 1 postgres postgres 4468 Jun 28 20:41 pg_hba.conf
-rw------- 1 postgres postgres 1636 Jun 28 20:41 pg_ident.conf
drwx------ 4 postgres postgres 4096 Jun 28 20:41 pg_logical
drwx------ 4 postgres postgres 4096 Jun 28 20:41 pg_multixact
drwx------ 2 postgres postgres 4096 Jun 28 20:41 pg_notify
drwx------ 2 postgres postgres 4096 Jun 28 20:41 pg_replslot
drwx------ 2 postgres postgres 4096 Jun 28 20:41 pg_serial
drwx------ 2 postgres postgres 4096 Jun 28 20:41 pg_snapshots
drwx------ 2 postgres postgres 4096 Jun 28 20:41 pg_stat
drwx------ 2 postgres postgres 4096 Jun 28 20:41 pg_stat_tmp
drwx------ 2 postgres postgres 4096 Jun 28 20:41 pg_subtrans
drwx------ 2 postgres postgres 4096 Jun 28 20:41 pg_tblspc
drwx------ 2 postgres postgres 4096 Jun 28 20:41 pg_twophase
-rw------- 1 postgres postgres 4 Jun 28 20:41 PG_VERSION
drwx------ 3 postgres postgres 4096 Jun 28 20:41 pg_xlog
-rw------- 1 postgres postgres 88 Jun 28 20:41 postgresql.auto.conf
-rw------- 1 postgres postgres 22267 Jun 28 20:41 postgresql.conf

PG_VERSION 包含 9.6

非常感谢任何帮助。

最佳答案

您正在更改默认的 postgresql 数据路径,因此您需要初始化数据库。试试这个

volumes:
- ./init.sql:/docker-entrypoint-initdb.d/init.sql

这里是 init.sql 文件

CREATE USER docker;
CREATE DATABASE docker;
GRANT ALL PRIVILEGES ON DATABASE docker TO docker;

关于postgresql - Docker 无法识别 Postgresql 数据目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51093171/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com