docker php-fpm 一直重启问题处理
2019-07-25 本文已影响0人
不做秃顶的程序猿
现象
使用 docker-compose up -d 启动 php-fpm 容器后会发现容器成功启动之后会马上关闭。由于设置了 restart: always
会导致容器再次启动然后关闭
背景
官方 php-fpm : 7.1 镜像,使用自定义的 php-fpm 配置。
php-fpm 配置是从现有生产服务器上复制过来的。配置没有问题。
docker-compose.yml
[root@test php-fpm]# cat docker-compose.yml
version: "3"
services:
php-fpm:
#image: phpfpm_php-fpm
build:
context: /ROOT/docker/dockerfile
dockerfile: php-fpm
volumes:
- "/ROOT:/ROOT"
- "/etc/localtime:/etc/localtime"
# 使用自己的php.ini
- "/ROOT/conf/php/php.ini:/usr/local/etc/php/php.ini"
#使用自己的php-fpm.conf
- "/ROOT/conf/php/php-fpm.conf:/usr/local/etc/php-fpm.conf"
container_name: php72
restart: always
hostname: php72
问题排查
看log,发现fpm正常启动了,然后马上就退出
[root@ php-fpm]# docker logs 18fb27874716
[18-Jul-2019 15:21:20] NOTICE: fpm is running, pid 1
[18-Jul-2019 15:21:20] NOTICE: ready to handle connections
[18-Jul-2019 15:33:37] NOTICE: Finishing ...
[18-Jul-2019 15:33:37] NOTICE: exiting, bye-bye!
跟镜像中自带的 php-fpm.conf 比较发现镜像中使用 daemonize = no
,而我自定义配置中 daemonize = yes
是后台运行的。
那么很明显官方镜像是故意使用 daemonize = no
不让 fpm 在后台中运行,进而阻止容器退出
解决方案
修改 php-fpm.conf 中如下
daemonize = no