无法弄清楚如何用Docker容器启动PHP-FPM

我有一个安装了PHP-FPM的Docker容器。 用-d选项启动它我试过了,但容器立即退出:

docker run -d --name u12php53 -p 9001:9000 php53 /usr/local/etc/php-fpm.sh 

/usr/local/etc/php-fpm.sh的内容是:

 service php5-fpm start && tail -F /var/log/php5-fpm.log 

如果我像这样启动泊坞窗:

 docker run -it --name u12php53 -p 9001:9000 -v php53 

并手动启动php-fpm.shPHP-FPM工作正常,其日志文件打印到标准输出。

最后的目标是configurationDocker在系统启动(或重新启动)时启动我的容器。

问题在这里: service php5-fpm start 。 当你执行这个命令过程时,php-fpm将会从shell中分离出来。 但是Docker只在主进程还活着时才能工作。

尝试在官方图像中运行php-fpm:只需删除入口点并添加CMD ["php-fpm"]

另外,你为什么要创build自己的PHP-FPM图像? 可能你可以使用官方图片?

可能的解决办法是:

 docker run -d --name u12php53 -p 9001:9000 -v php53 bash -c '/usr/local/etc/php-fpm.sh' 

大概这是在Dockerfile中这样做的等价物:

 CMD ["sh", "/usr/local/etc/php-fpm.sh"]