0

基本上我有这个内部使用ZipArchive的包

PHP_FPM_INSTALL_ZIP_ARCHIVE=true我已经为我的 php-fpm 容器设置了标志

php artisan log:archive当我在容器中启动命令时,该包按预期工作,workspace但是如果我尝试在php-worker发生可怕的事情时设置 Horizo​​n,基本上只要我docker-compose up -d php-worker使用以下主管配置启动 php-worker:

[program:laravel-horizon]
process_name=%(program_name)s
command=php /var/www/artisan horizon
autostart=true
autorestart=true
user=root
redirect_stderr=true
stdout_logfile=/var/www/storage/logs/horizon.log


[program:laravel-queue-work]
process_name=%(program_name)s_%(process_num)02da
command=php /var/www/artisan queue:work --sleep=3 --tries=3 --daemon
autostart=true
autorestart=true
user=root
numprocs=8
redirect_stderr=true
stdout_logfile=/var/www/storage/logs/queue-work.log

两者queue-work.loghorizon.log填充了在ArchiveCommand.php中找不到的类 ZipArchive

当然,从依赖项中删除包可以解决问题,但它不应该是一个解决方案,因为 ZipArchive 已安装并且包在内部按预期工作workspace

我错过了什么?


预期行为:

容器 php-worker 应该在不提示异常的情况下启动Class ZipArchive not found in ...


复制:

  • 全新安装 laravel
  • 添加"ludo237/laravel-logs-manager": "^1.0",为依赖项
  • 构建workspacephp-fpm使用PHP_FPM_INSTALL_ZIP_ARCHIVE=true
  • 测试命令中的异常行为workspace
  • php-worker使用上面的主管配置创建一个容器
  • 测试日志中的意外行为

Github 上的相关问题

4

1 回答 1

0

PHP-FPM 容器和 PHP-WORKER 容器不一样,你需要将包安装到 PHP-WORKER。( php-worker 是主管运行的地方)

于 2019-02-08T13:09:45.750 回答