【发布时间】:2021-09-10 02:08:44
【问题描述】:
尝试运行位于某个目录中的 postgresql 数据库(使用 pg_ctl start -D pgdirectory/ 从 Mac 或 Ubuntu 轻松运行)
docker network create pgnet
docker run -it --rm \
--name pgdockerdb \
--network pgnet \
-p 5436:5432 \ # postgres is running in 5432 locally
-v /local/path/to/pgdb:/var/lib/postgresql/data \
-e POSTGRES_DB=pgdb \
-e POSTGRES_USER=pguser \
-e POSTGRES_PASSWORD=sstrongggpass \
postgres_image
我收到以下答案(从西班牙语翻译成英语 -> 我不知道 postgresql 应该用英语写的确切单词):
...尝试创建新数据库的第一行...
initdb:错误:目录«/var/lib/postgresql/data»存在但它不为空 如果要创建新的数据库集群,请擦除或清空 目录 «/var/lib/postgresql/data»,或 exec initdb 使用与 «/var/lib/postgresql/data» 不同的参数。 db 以代码 1 退出
我尝试在卷 /docker-entrypoint-initdb.d/ 中包含一个带有 pg_ctl start -D . 的 sh
我尝试在 docker-compose.yml 中包含来自 id $user 的 PUID 和 PGID 环境变量(root、用户或 999 [因为 docker y 向该用户发送文件])
最糟糕的是,有一次工作,但是当你复制了最新的数据库时,再也没有工作过。
【问题讨论】:
标签: postgresql docker docker-compose synology