当我为容器运行交互式 shell 程序时,肯定有一个PHP二进制文件:
sudo docker run -t -i neekoy/php7 /bin/sh
/ # which php-fpm7
/usr/sbin/php-fpm7
但是,当我运行相同的容器时,我得到以下信息:sudo docker run neekoy/php7
/bin/sh: [php-fpm7]: not found
这是我的Dockerfile:FROM alpine:latest
RUN apk update
RUN apk add php7-fpm php7-mcrypt php7-soap php7-openssl php7-gmp php7-pdo_odbc php7-json php7-dom php7-pdo php7-zip php7-mysqli php7-sqlite3 php7-apcu php7-pdo_pgsql php7-bcmath php7-gd php7-odbc php7-pdo_mysql php7-pdo_sqlite php7-gettext php7-xmlreader php7-xmlrpc php7-bz2 php7-iconv php7-pdo_dblib php7-curl php7-ctype
EXPOSE 9000
CMD ['php-fpm7']
我删除了配置更改,因为它们无关紧要。系统信息:
Container:
cat /etc/release
3.7.0
NAME="Alpine Linux"
My PC:
docker -v
Docker version 17.12.1-ce, build 7390fc6
请暂停。
最佳答案
问题是单引号'
不起作用-根据documentation,参数被解析为JSON数组。因此正确的“CMD”行应如下所示:
CMD ["php-fpm7", "-F"]
关于php - 找不到Docker命令中Alpine下的PHP7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50852569/