Docker ile:“/var/www/html/lib/private/Setup/PostgreSQL.php”,“line”:98,“function”:“connect”,“class”:“OC\\DB\\Connection”,“type”:“->”,“args”:[]},{“file”:“/var/www/html/lib/private/Setup.php”,“line”:359,“function”:“setupDatabase”,“class”:“OC\\Setup\\PostgreSQL”,“type”:“->,“args”:[“rstudio”]},{“file”:“var/www/html/core/Controller/SetupController.php”,”第75行,“函数”:“安装”,“类”:“OC\\Setup”,“类型”:“->”,“参数”:[“***敏感参数替换为***”]},{“文件”:“/var/www/html/lib/base.php”,“第946行,”函数”:“运行”,“类”:“OC\\Core\\Controller\\SetupController”,“类型”:“->”,“参数”:[“***敏感参数替换为***”]},{“文件”:“/var/www/html/index.php”,“第37行”,函数”:HandlerRequest,“类”:“OC”,“类型”:“,“args”:[]}],“文件”:“/var/www/html/lib/private/DB/Connection.php”,“行”:72,“CustomMessage”:“-“}”,userAgent:“Mozilla/5.0(X11;Ubuntu;Linux x86_64;rv:84.0)Gecko/20100101 Firefox/84.0”,“版本”:“20.0.4.0” {“reqId”:“WebbNSOANVGRANSMKBZ”,“level”:3,“time”:“2021-01-17T23:32:41+00:00”,“remoteAddr”:“192.168.32.1”,“user”:“--”,“app”:“index”,“method”:“POST”,“url”:“/index.php”,“message”:{“Exception”:“OC\\DatabaseException”,“message”:执行“SHOW SERVER_VERSION”时发生异常:\n\n无法连接到数据库:驱动程序中发生异常:SQLSTATE[08006][7]无法将主机名“nextcloud_db_1”转换为地址:名称解析暂时失败,“代码”:0,“跟踪”:[{“文件”:/var/www/html/lib/private/legacy/OC_db.php”,“行”:143,“函数”:“准备”,“类”:“OC_DB”,“类型”:“,“args”:[“显示服务器版本”,null,null]},{“文件”:“/var/www/html/lib/private/legacy/OC_Util.php”,“行”:984,“函数”:“ExecuteAuded”,“类”:“OC_DB”,“类型”:“,“args”:[{“sql”:“显示服务器版本”,“限制”:null,“偏移量”:null}},{“文件”:“/var/www/html/lib/private/legacy/OC_Util.php”,“行:”964,“函数”:”checkDatabaseVersion,“类”:“OC_Util”,“类型”:“,“args”:[]},{“文件”:“/var/www/html/lib/base.php”,“行”:660,“函数”:“checkServer”,“类”:“OC_Util”,“类型”:“,“args”:[{”OC\\SystemConfig“}},{“文件”:/var/www/html/lib/base.php”,“行”:1091,“函数”:“init”,“类”:“OC”,“类型”:“,“args”:“,”,“args”:“{”var/www/php/index“,”第35行,“args”:[“/var/www/html/lib/base.php”],“函数”:“require_once”}],“文件”:“/var/www/html/lib/private/legacy/OC_DB.php”,“第73行,“CustomMessage”:“--”,“userAgent”:“Mozilla/5.0(X11;Ubuntu;Linux x86_64;rv:84.0)Gecko/20100101 Firefox/84.0”,“版本”:“20.0.4.0”}

Docker ile:“/var/www/html/lib/private/Setup/PostgreSQL.php”,“line”:98,“function”:“connect”,“class”:“OC\\DB\\Connection”,“type”:“->”,“args”:[]},{“file”:“/var/www/html/lib/private/Setup.php”,“line”:359,“function”:“setupDatabase”,“class”:“OC\\Setup\\PostgreSQL”,“type”:“->,“args”:[“rstudio”]},{“file”:“var/www/html/core/Controller/SetupController.php”,”第75行,“函数”:“安装”,“类”:“OC\\Setup”,“类型”:“->”,“参数”:[“***敏感参数替换为***”]},{“文件”:“/var/www/html/lib/base.php”,“第946行,”函数”:“运行”,“类”:“OC\\Core\\Controller\\SetupController”,“类型”:“->”,“参数”:[“***敏感参数替换为***”]},{“文件”:“/var/www/html/index.php”,“第37行”,函数”:HandlerRequest,“类”:“OC”,“类型”:“,“args”:[]}],“文件”:“/var/www/html/lib/private/DB/Connection.php”,“行”:72,“CustomMessage”:“-“}”,userAgent:“Mozilla/5.0(X11;Ubuntu;Linux x86_64;rv:84.0)Gecko/20100101 Firefox/84.0”,“版本”:“20.0.4.0” {“reqId”:“WebbNSOANVGRANSMKBZ”,“level”:3,“time”:“2021-01-17T23:32:41+00:00”,“remoteAddr”:“192.168.32.1”,“user”:“--”,“app”:“index”,“method”:“POST”,“url”:“/index.php”,“message”:{“Exception”:“OC\\DatabaseException”,“message”:执行“SHOW SERVER_VERSION”时发生异常:\n\n无法连接到数据库:驱动程序中发生异常:SQLSTATE[08006][7]无法将主机名“nextcloud_db_1”转换为地址:名称解析暂时失败,“代码”:0,“跟踪”:[{“文件”:/var/www/html/lib/private/legacy/OC_db.php”,“行”:143,“函数”:“准备”,“类”:“OC_DB”,“类型”:“,“args”:[“显示服务器版本”,null,null]},{“文件”:“/var/www/html/lib/private/legacy/OC_Util.php”,“行”:984,“函数”:“ExecuteAuded”,“类”:“OC_DB”,“类型”:“,“args”:[{“sql”:“显示服务器版本”,“限制”:null,“偏移量”:null}},{“文件”:“/var/www/html/lib/private/legacy/OC_Util.php”,“行:”964,“函数”:”checkDatabaseVersion,“类”:“OC_Util”,“类型”:“,“args”:[]},{“文件”:“/var/www/html/lib/base.php”,“行”:660,“函数”:“checkServer”,“类”:“OC_Util”,“类型”:“,“args”:[{”OC\\SystemConfig“}},{“文件”:/var/www/html/lib/base.php”,“行”:1091,“函数”:“init”,“类”:“OC”,“类型”:“,“args”:“,”,“args”:“{”var/www/php/index“,”第35行,“args”:[“/var/www/html/lib/base.php”],“函数”:“require_once”}],“文件”:“/var/www/html/lib/private/legacy/OC_DB.php”,“第73行,“CustomMessage”:“--”,“userAgent”:“Mozilla/5.0(X11;Ubuntu;Linux x86_64;rv:84.0)Gecko/20100101 Firefox/84.0”,“版本”:“20.0.4.0”},docker,docker-compose,nextcloud,Docker,Docker Compose,Nextcloud,我的设置是否合理?这是一个错误?我对我在docker compose中添加的博士后没有信心,或者我是否做得正确 如何使用docker和volumes在本地使用postgres设置nextcloud,以便我可以根据自己的选择将整个nextcloud设置从云提供商转移到云提供商?我很确定问题出在这一行: - POSTGRES_HOST=nextcloud_db_1 # service name for postgres as assigned by Docker 如果您正在执行的目录docker

我的设置是否合理?这是一个错误?我对我在docker compose中添加的博士后没有信心,或者我是否做得正确


如何使用docker和volumes在本地使用postgres设置nextcloud,以便我可以根据自己的选择将整个nextcloud设置从云提供商转移到云提供商?

我很确定问题出在这一行:

- POSTGRES_HOST=nextcloud_db_1 # service name for postgres as assigned by Docker
如果您正在执行的目录
docker compose up
未调用“nextcloud”,则该目录将不起作用

例如:如果您在“nc”目录中,则必须将主机设置为
nc\u db\u 1

但是还有一个选择:

您可以设置主机名以避免此类问题

docker-compose.yml示例

版本:“3.5”
服务:
下一步:
建造:
上下文:。
dockerfile:./dockerfile
端口:
- "8080:80"
环境:
-POSTGRES_HOST=nc POSTGRES#此处
-POSTGRES_DB=nextcloud_DB
-POSTGRES\u USER=POSTGRES
-POSTGRES_密码=测试123
取决于:
-分贝
db:
图片:博士后
重新启动:始终
主机名:“nc postgres”#和此处
卷数:
-./postgres数据:/var/lib/postgresql/data
环境:
-POSTGRES_DB=nextcloud_DB
-POSTGRES\u USER=POSTGRES
-POSTGRES_密码=测试123
结果:


谢谢,自从我现在访问nc仪表板以来,这似乎取得了成功。有没有办法验证它是否使用postgres而不是默认的sqlite?我尝试使用sql客户端Dbeaver使用host:localhost连接到db(也尝试了nextcloud\u db),用户postgres和pw根据上面的docker compose,testing123。连接失败。因此,它看起来正在工作,但我不知道如何验证它正在使用postgres!你可以单击你的头像(右上角),然后单击“设置”,然后在左边转到“系统”“然后向下滚动到数据库…如果你想连接到数据库,你必须绑定端口,或者你可以使用
docker exec-it psql-U postgres nextcloud\U db
将其执行到容器中。谢谢,看起来我现在已经连接到pgsql了。”。当您说绑定端口时,您的意思是,例如docker compose?中的
端口:\-“5432:5432”
,无需担心,我通过测试验证了这一点,并且我能够通过客户端连接到数据库。非常感谢。
docker-compose build
docker-compose up -d
- POSTGRES_HOST=nextcloud_db_1 # service name for postgres as assigned by Docker