无法弄清楚如何用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.sh
, PHP-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"]