【问题标题】:Docker postgresql start directory in a volume卷中的 Docker postgresql 启动目录
【发布时间】: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


    【解决方案1】:

    最后,我意识到PG_VERSION 不在我的目录中,所以我创建了它。然后 Postgres 要求更多丢失的文件夹,所以最后我建议创建一个新数据库来比较数据结构以查找您的目录是否格式正确。

    我确实在翻译文件时遇到了问题,所以我恢复了以前的版本,它可以完美运行。

    【讨论】:

      猜你喜欢
      • 2018-09-25
      • 1970-01-01
      • 2020-09-21
      • 1970-01-01
      • 2020-03-14
      • 1970-01-01
      • 1970-01-01
      • 2019-03-16
      • 2016-03-12
      相关资源
      最近更新 更多