Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-FPM不会从Dockerfile开始_Php_Docker_Docker Compose_Dockerfile_Containers - Fatal编程技术网

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构建此映像并

你好,亲爱的社区

我试图完成一些非常简单的事情,我想使用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构建此映像并将其作为容器运行时,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"]
就像在美国一样