docker php-fpm 一直重启问题处理

现象

使用 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

你可能感兴趣的:(docker php-fpm 一直重启问题处理)