关于1panel容器内运行进程守护问题的探讨和求助

运行环境:

  • 操作系统: Ubuntu 22.04
  • 1Panel版本: v1.10.17-lts

问题描述:

我们知道如果是使用原生的 docker和 docker-compose, 可以通过在 php镜像构建的时候安装 supervisor来支持启动一些守护进程,比如gatewayWorkeman、消息队列、自定义命令、服务等等。

之前尝试将自己使用多年的一套docker环境在1panel允许,很可惜,经过很多调试,跑是跑起来了,但是在面板里面是看不到的,没法进行管理。 当时联系管理员也说了自动的的镜像和容器构建的是看不到。 最后还是老老实实的全部手工一个个安装官方的服务然后进行配置。 后面又遇到进程守卫的问题,因为没法使用自己镜像、使用 1panel的 php镜像也没法去编辑。

所以论坛中有的朋友说可以通过计划任务去触发+心跳检测,感觉还是不可靠,万一出问题,客户要炸锅。 也有朋友说可以通过宿主机中通过docker exce 方式去执行,但是也是会出现不可靠问题,需要自己在宿主机监控和重启。 还有的朋友说直接通过命令行在宿主机再按照一套原生的 php 环境,然后直接宿主机的 supervisor接管,再去调用容器中的服务协调。

通过对社区话题检索,至今官方貌似没有给出明确的方案,不知道各位朋友都是使用的什么方案?

这个是临时解决方案

V2 我们会支持在 PHP 容器中创建守护进程