Docker 在$PATH中找不到可执行文件

Docker 在$PATH中找不到可执行文件,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,我在PHP-FPM7.1的Dockerfile中工作。我用以下行结束Dockerfile: CMD ["php71-php-fpm"] 因为我使用的是docker compose这就是我启动容器的方式: docker-compose up -d 容器按照以下行编译(显然): Successfully built 014e24455b53 WARNING: Image for service php was built because it did not already exist. To

我在PHP-FPM7.1的Dockerfile中工作。我用以下行结束Dockerfile:

CMD ["php71-php-fpm"]
因为我使用的是
docker compose
这就是我启动容器的方式:

docker-compose up -d
容器按照以下行编译(显然):

Successfully built 014e24455b53
WARNING: Image for service php was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating php71-fpm
但它以以下错误结束:

ERROR: for php  Cannot start service php: invalid header field value "oci runtime error: container_linux.go:247: starting container process caused \"exec: \\\"php71-php-fpm\\\": executable file not found in $PATH\"\n"
ERROR: Encountered errors while bringing up the project.
我尝试了以下方法:

CMD php71-php-fpm
错误消失,但容器退出,代码127:

> docker-compose ps
  Name              Command             State     Ports
-------------------------------------------------------
php71-fpm   /bin/sh -c php71-php-fpm   Exit 127
我错过了什么

更新

我找到了以下答案:

未找到给定命令时,/bin/sh返回值127 在PATH系统变量中,并且它不是内置shell 指挥部。换句话说,系统不理解你的命令, 因为它不知道在哪里找到你想要的二进制文件 打电话

这使我认为文件没有被执行,因此路径设置不正确

再一次,我错过了什么

php71 fpm
将与另一个运行Nginx的容器链接(这是一个WIP,也是我学习Docker的方法)


这是完整的,让你看看

我认为您遇到了麻烦,因为Docker运行的默认shell不是根据的登录shell,这意味着
/etc/profile.d/
中的脚本不会得到处理


如果您需要配置文件处理,请尝试将最后一行更改为
CMD[“/bin/sh”、“-l”、“-c”、“php71 php fpm”]
以调用登录shell。

我得到了与以前相同的结果您确定映像上存在可执行文件吗?在图像上执行
find/-name php71-php-fpm1
只能在
/etc/logrotate.d
**注意**我最初忘记了回答中的
-c
。很抱歉。但是使用
CMD[“env”]
运行映像与
CMD[“/bin/sh”、“-l”、“-c”、“env”]
将在
路径中显示相关的php目录
这是应该添加路径的文件,可能在容器启动时没有执行,您能看一下并让我知道这就是问题所在,这种情况下的解决方案是什么吗?我确实相信,如果使用
/bin/sh-l-c…
运行,则容器正在寻找
php71 path.sh
文件,运行时使用
env
在容器中打印环境变量就证明了这一点(
PATH
包含对
php
目录的引用)。但是,我担心的是,名为
php71 php fpm
的可执行文件实际上不存在于您的映像上。如上所述,在容器的文件系统中,当它运行时,我无法在任何地方找到它。这是启动php所需的实际命令吗?抱歉,我目前无法测试您的映像。