gpt4 book ai didi

postgresql - Laravel Docker 无法执行 PostgreSQL pg_restore

转载 作者:行者123 更新时间:2023-11-29 12:56:39 25 4
gpt4 key购买 nike

我正在使用 Laravel 5 运行一个 docker 容器,我的机器上有 PostgreSQL

一切都完美无缺,除了我的数据库上有很多数据,这使得播种大约需要 1 小时。我想出的解决方法是恢复一个备份文件(仅数据),该文件将在大约 5 分钟内为我播种数据库。

太棒了!但是……

Laravel 运行在 docker 容器内,而 PostgreSQL 不是,所以当 Laravel 运行时

  $cmd = "pg_restore -v -U pgadmin -d $database $path";

exec($cmd);

我收到一条错误消息,指出没有要执行的 pg_restore。

  sh: 1: pg_restore: not found

所以,最后,我的问题是:如何让 Laravel 能够执行 pg_restore?

Obs:它在机器上运行 Laravel 时也能正常工作,但我真的需要在 docker 上使用 Laravel 并在外部使用 postgres 来解决它。

提前致谢!

更新:

我编辑了 docker-compose.yml 并在 volumes 下添加了以下行

./usr/bin/pg_restore:/usr/bin/pg_restore

现在错误只是

sh: 1: pg_restore: Permission denied

这意味着现在它“看到”了 pg_restore 命令但没有执行它的权限,因为它在 docker 容器中运行....我该如何解决这个问题?

最佳答案

如果您想从容器内运行它们,请在容器内安装您需要的工具。

因此,即使您可能不想运行数据库进程,您仍然需要这些工具。安装它。

关于postgresql - Laravel Docker 无法执行 PostgreSQL pg_restore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41571566/

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