自己构建的php镜像 如何 容器启动的时候自动启动Supervisor

开发过程中 需要自己构建php镜像 关键PHP中很多时候的都需要用队列 因为队列的不稳定 所以要用Supervisor守护进程 我试着在 dockerfile 中添加 CMD [“/usr/bin/supervisord”, “-n”, “-c”, “/etc/supervisor/supervisord.conf”] 发现没有启动 Supervisor 一步步的查找 终于发现了


构建的容器自动添加了 entrypoint 和command 这个将 dockerfile 中的cmd给替换了 我将 entrypoint 和command 删除后 容器 Supervisor 启动正常 但是 php不正常了 试着将 2个命令合并到一条 试过多次也失败了

好像 docker-php-entrypoint php-fpm 最终 执行的 exec php-fpm 和我期望的/bin/bash 执行Supervisor 不符合 现在是实在想不出什么办法了 当然 写个 XX.sh文件 去执行2个命令的方式 还没有测试 我现在测试下 期望大神指点一下 一个开发初搞运维 挺费事

大佬你这个回复什么意思 github是我提交的

了解,可以两边都关注一下问题进展。

我想了下 可不可以做个容器启动的钩子 调用计划任务来实现 计划任务出一个 容器启动时候执行的shell选项 启动的时候自动调用 shel

我们后续版本可能会考虑直接在创建 PHP 运行环境时支持 supervisor。

大佬最好能提供php启动supervisor方法
因为php官方用的是alpine 自己构建的容器需要其他版本 (原因是有些软件在alpine上无法安装或者缺少各种库)
提供php启动supervisor方法 和 alpine 支持supervisor启动 相比 提供php启动supervisor方法需求更大一些 对于开发者也更方便一些

所在现在supervisor还不能守护php容器里的命令吗

暂时还是不行的 最坑的 php 用的是fpm fpm需要接收 openresty 转发的数据 所以要启动 必须要有php-fpm 命令 但是supervisor cmd的命令又总是替换了php-fpm 感觉是一个无解的状态

需要在 php-fpm 容器中安装 supervisor
我们考虑后续自己维护 php-fpm 镜像,并增加 supervisor
短期内看看能不能出个临时解决方案

我试过啊 在容器按安装supervisor 但是要手动启动 不能构建的完成自动启动

总结下,目前有两种可行方案:

  1. 官方给的自定义php镜像方案 PHP 单容器多网站, Xload,Supervisor 临时解决方案 :操作有些繁琐,而且仅支持php8.2,所以我觉得兼容性不高
  2. 我自己想到的方案:用定时任务去容器内启动进程,如果检测到进程不存在了就重新启动。1Panel支持秒级定时任务,所以把检测间隔设置到尽可能短的话,是可以实现supervisor一样的守护功能的。对于简单应用足够了,这个方案
    如有问题,请联系wechat:ZnJlZGR5emhvdTNx (base64解码)