PHP-FPM不会从Dockerfile开始
你好,亲爱的社区 我试图完成一些非常简单的事情,我想使用dockerfile从docker容器启动一个php fpm服务。我的dockerfile内容发布在下面:PHP-FPM不会从Dockerfile开始,php,docker,docker-compose,dockerfile,containers,Php,Docker,Docker Compose,Dockerfile,Containers,你好,亲爱的社区 我试图完成一些非常简单的事情,我想使用dockerfile从docker容器启动一个php fpm服务。我的dockerfile内容发布在下面: FROM debian RUN apt-get update && apt-get install php -y && apt-get install php7.3-fpm -y && service php7.3-fpm start 当我从dockerfile构建此映像并
FROM debian
RUN apt-get update && apt-get install php -y && apt-get install php7.3-fpm -y && service php7.3-fpm start
当我从dockerfile构建此映像并将其作为容器运行时,php fpm服务不处于活动状态
我甚至尝试使用docker的交互模式-I arg来确保在服务作为守护进程运行的情况下容器不会退出
我感到困惑,因为命令运行服务php7.3-fpm start from my dockerfile应该已经启动了该服务
要成功启动容器内的服务,我实际上必须使用命令docker exec-it containerID bash手动登录到它,并运行命令服务php7.3-fpm start-imf,然后服务工作并激活
我不明白为什么php fpm服务不是从我的Dockerfile自动启动的,如果有任何帮助,我将不胜感激。提前谢谢 首先,像service这样的命令在Docker中根本不起作用 Docker容器只运行一个前台进程。这通常不是一个init系统,或者如果是的话,它只足以处理一些琐事,比如僵尸进程清理。相反,Docker映像只包含一个文件系统映像和一些关于如何启动该进程的元数据,但它不会持久化任何正在运行的进程。例如,如果你
RUN service php7.3-fpm start
它可能会在某个文件中记录服务应该已经启动,但一旦RUN命令完成,运行的进程就不再存在了
获取正在运行的PHP-FPM设置的最简单方法是使用:
这应该完成所有必需的设置,包括安排FPM服务器作为主容器命令运行;您只需要将应用程序代码复制到中
如果你真的想自己运行它,你需要让它成为你自定义镜像的主命令
CMD ["php-fpm"]
正如在中所做的那样。作为第一个近似值,像service这样的命令在Docker中根本不起作用 Docker容器只运行一个前台进程。这通常不是一个init系统,或者如果是的话,它只足以处理一些琐事,比如僵尸进程清理。相反,Docker映像只包含一个文件系统映像和一些关于如何启动该进程的元数据,但它不会持久化任何正在运行的进程。例如,如果你
RUN service php7.3-fpm start
它可能会在某个文件中记录服务应该已经启动,但一旦RUN命令完成,运行的进程就不再存在了
获取正在运行的PHP-FPM设置的最简单方法是使用:
这应该完成所有必需的设置,包括安排FPM服务器作为主容器命令运行;您只需要将应用程序代码复制到中
如果你真的想自己运行它,你需要让它成为你自定义镜像的主命令
CMD ["php-fpm"]
就像在美国一样