美文网首页
docker php-fpm 一直重启问题处理

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

作者: 不做秃顶的程序猿 | 来源:发表于2019-07-25 14:19 被阅读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

    相关文章

      网友评论

          本文标题:docker php-fpm 一直重启问题处理

          本文链接:https://www.haomeiwen.com/subject/ddhhrctx.html