【问题标题】:Docker: php7.0-fpm Executable file not found in $PATHDocker:在 $PATH 中找不到 php7.0-fpm 可执行文件
【发布时间】:2017-05-12 14:16:32
【问题描述】:

我正在构建一个 Debian 9、NGINX、PHP7 FPM 容器。

我的 php7-fpm docker 文件中有这个(基于 Debian 9)

当我有这条结束线时,问题就出现了(我认为): ENTRYPOINT ["php7.0-fpm"]

我之前在之前的 docker build 中使用过这个,但是这个导致了以下错误: $ docker run -t linxlad/php7-fpm C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"php7.0-fpm\": executable file not found in $PATH".

我的 Docker 文件:

#
# PHP-FPM Dockerfile
#

# Pull base image.
FROM linxlad/nginx

# No tty
ENV DEBIAN_FRONTEND noninteractive

RUN echo "deb http://ftp.us.debian.org/debian/ stretch main contrib non-free" >> /etc/apt/sources.list
RUN echo "deb-src http://ftp.us.debian.org/debian/ stretch main contrib non-free" >> /etc/apt/sources.list

RUN wget https://www.dotdeb.org/dotdeb.gpg && apt-key add dotdeb.gpg

RUN apt-get update && \
    apt-get -y install software-properties-common && \
    apt-get update

# Install PHP
RUN apt-get -y --force-yes install php7.0-cli php7.0-fpm php7.0-dev php7.0-mcrypt php7.0-mbstring \
    php7.0-bz2 php7.0-xml php7.0-common php7.0-mysql php-pear

# Phalcon
RUN curl -s "https://packagecloud.io/install/repositories/phalcon/stable/script.deb.sh" | bash && \
    apt-get update && \
    apt-get -y --force-yes install php7.0-phalcon

RUN echo "extension=phalcon.so" >> /etc/php/7.0/fpm/conf.d/40-phalcon.ini

RUN sed -i '/daemonize /c \
daemonize = no' /etc/php/7.0/fpm/php-fpm.conf

# tweak php-fpm config
RUN sed -i -e "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g" /etc/php/7.0/fpm/php.ini && \
    sed -i -e "s/upload_max_filesize\s*=\s*2M/upload_max_filesize = 100M/g" /etc/php/7.0/fpm/php.ini && \
    sed -i -e "s/memory_limit = .*/memory_limit = 1024M/g" /etc/php/7.0/fpm/php.ini && \
    sed -i -e "s/memory_limit = .*/memory_limit = 1024M/g" /etc/php/7.0/cli/php.ini && \
    sed -i -e "s/post_max_size\s*=\s*8M/post_max_size = 100M/g" /etc/php/7.0/fpm/php.ini && \
    sed -i -e "s/;daemonize\s*=\s*yes/daemonize = no/g" /etc/php/7.0/fpm/php-fpm.conf && \
    sed -i -e "s/;catch_workers_output\s*=\s*yes/catch_workers_output = yes/g" /etc/php/7.0/fpm/pool.d/www.conf && \
    sed -i -e "s/pm.max_children = 5/pm.max_children = 9/g" /etc/php/7.0/fpm/pool.d/www.conf && \
    sed -i -e "s/pm.start_servers = 2/pm.start_servers = 3/g" /etc/php/7.0/fpm/pool.d/www.conf && \
    sed -i -e "s/pm.min_spare_servers = 1/pm.min_spare_servers = 2/g" /etc/php/7.0/fpm/pool.d/www.conf && \
    sed -i -e "s/pm.max_spare_servers = 3/pm.max_spare_servers = 4/g" /etc/php/7.0/fpm/pool.d/www.conf && \
    sed -i -e "s/pm.max_requests = 500/pm.max_requests = 200/g" /etc/php/7.0/fpm/pool.d/www.conf && \
    sed -i -e "s/user = www-data/user = web/g" /etc/php/7.0/fpm/pool.d/www.conf && \
    sed -i -e "s/group = www-data/group = staff/g" /etc/php/7.0/fpm/pool.d/www.conf && \
    echo "date.timezone = \"Europe/London\"" >> /etc/php/7.0/fpm/php.ini

# fix ownership of sock file for php-fpm
RUN sed -i -e "s/;listen.mode = 0660/listen.mode = 0750/g" /etc/php/7.0/fpm/pool.d/www.conf && \
    find /etc/php/7.0/cli/conf.d/ -name "*.ini" -exec sed -i -re 's/^(\s*)#(.*)/\1;\2/g' {} \;

RUN sed -i '/^listen /c \
    listen = 9000' /etc/php/7.0/fpm/pool.d/www.conf

RUN sed -i 's/^listen.allowed_clients/;listen.allowed_clients/' /etc/php/7.0/fpm/pool.d/www.conf

EXPOSE 9000

VOLUME ["/etc/php-fpm.d", "/var/log/php-fpm", "/var/www/html"]

ENTRYPOINT ["php7.0-fpm"]

我发现了类似的东西,但它对我不起作用? Executable file not found in $PATH

有人知道解决办法吗?

【问题讨论】:

    标签: php docker


    【解决方案1】:

    您是否尝试在 ENTRYPOINT 中指定 fpm 文件的绝对路径?

    类似 ENTRYPOINT ["/etc/init.d/php7.0-fpm"]

    【讨论】:

    • 我刚刚尝试了CMD service php7.0-fpm start && nginx -g "daemon off;",得到了以下错误nginx: invalid option: "/bin/sh"。让我试试你的建议。
    • 我猜是这个? ENTRYPOINT ["/etc/init.d/php7.0-fpm", "start"] 但是是什么让容器保持运行?我怎样才能保持它,它不再出错,但容器在我启动后没有运行。我需要一些东西来维持它吗?
    • 如果容器没有运行,那么初始化失败。您应该能够从 - docker logs 进行检查
    猜你喜欢
    • 2019-01-16
    • 2015-01-25
    • 1970-01-01
    • 2021-11-23
    • 2017-09-25
    • 2016-04-19
    • 2018-05-23
    • 2021-09-16
    • 1970-01-01
    相关资源
    最近更新 更多