本地Docker环境容器内跑到curl_exec容器就挂掉是什么原因呢?

本地一个项目只要执行到curl_exec就会死掉,这个php容器里的网站直接访问不到,要重启这个容器才行;代码如下:

这段代码是阿里云OSS SDK的一段代码,不知道为何在我的容器里就会死掉。

附言 1  ·  4年前

已解决:灵异事件,更改了一下SDK的依赖包版本一切问题都解决了。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

已解决:更改了一下SDK的依赖包版本,所有问题都解决了,很奇怪,不换在某种情况下也能用,而且线上也都是能用的。

4年前 评论
讨论数量: 3
docker logs 容器id

看下容器退出前最后的日志呢?

4年前 评论

@wj2015 当容器卡死后,日志大概是下面这样

[20-Feb-2021 20:05:32] WARNING: [pool www] child 9, script '/www/ShengXin/CRM/index.php' (request: "POST /index.php") executing too slow (3.063820 sec), logging

[20-Feb-2021 20:05:32] NOTICE: child 9 stopped for tracing

[20-Feb-2021 20:05:32] NOTICE: about to trace 9

[20-Feb-2021 20:05:32] ERROR: pread() failed: I/O error (5)

[20-Feb-2021 20:05:32] NOTICE: finished trace of 9

经过一晚上的测试,发现原因似乎还有可能是目录或文件权限的问题,看下面注释说明,真的是奇怪了。

// 这里的第三个参数如果我写死,写成我在容器 /tmp 目录手动创建的文件 如 /tmp/test 代码就炮通了
// 但是第三个参数如果写成下面这样 也就是$file['tmp_name'] 这个$file = $_FILES["file"],从表单选择的文件就会卡死
$res = $ossClient->uploadFile($config['bucket'], $ossFileName, $file['tmp_name']);
4年前 评论

已解决:更改了一下SDK的依赖包版本,所有问题都解决了,很奇怪,不换在某种情况下也能用,而且线上也都是能用的。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!