运行docker容器时的错误集

运行docker容器时的错误集

我被要求对在 Docker 容器内运行的旧 PHP 项目进行一些调整。为了进行这些调整,我尝试运行应用程序和相关容器的本地工作副本。

docker 容器运行 Alpine Linux。我尝试转到我的索引页,但浏览器一直旋转,只要请求处于活动状态,以下重复日志输出就会循环:

php-fpm_1 | [2018 年 4 月 25 日 17:35:54] 错误:无法 ptrace(ATTACH)子级 25:操作不允许(1)php-fpm_1
| [2018 年 4 月 25 日 17:35:54] 警告:[pool www] 子级 25,脚本'/usr/src/app/web/app_dev.php'(请求:“GET /app_dev.php”)执行太慢(2.455295 秒),记录 php-fpm_1 | 172.23.0.3 - 2018 年 4 月 25 日:17:35:50 +0200“GET /app_dev.php”404 php-fpm_1 | [2018 年 4 月 25 日 17:35:55] 错误:无法 ptrace(ATTACH)子进程 24:操作不允许 (1) php-fpm_1 | [2018 年 4 月 25 日 17:35:55] 警告:[pool www] 子进程 24,脚本'/usr/src/app/web/app_dev.php'(请求:“GET /app_dev.php”)执行太慢(2.423747 秒),记录 php-fpm_1 | 172.23.0.3 - 2018 年 4 月 25 日:17:35:49 +0200“GET /app_dev.php”404

... ETC ...

我发现了一个不同的 serverfault 帖子建议手动运行audit2allow——一个我从未使用过的实用程序——以修复类似的问题。但 Alpine Linux 没有附带该实用程序,我的容器中也没有 APK 包管理器。在完成安装这些实用程序的大量工作之前,我想知道:

这是audit2allow可行的方法吗,或者还有其他可行的解决方案吗?

=====

编辑:正如 Gerald 所评论的,audit2allow 工具是 selinux 的一部分,而 Alpine 的这个版本中没有这个工具。因此,肯定有其他方法可以解决此错误。

答案1

事实证明,这是一个应用程序问题,而不是环境问题。我需要对一个充满静态资产的文件夹进行符号链接。

make assets-update

...依次包装:

app/console bazinga:js-translation:dump
app/console assets:install
app/console assetic:dump
@if [ ! -h web/storage ]; then \
    ln --symbolic ../data/storage web/storage; \

一旦我这样做了,问题就消失了。

相关内容