在没有明确调用的情况下,Docker容器中的二进制文件不会被启动
我正在build立我自己的官方图像Dockerfile,因为它是基础,我正在调整与Ansible简单的configuration更改。 dockerfile的相关部分:
FROM php:7.0-fpm MAINTAINER hyperfocus # Ansible cmds EXPOSE 9000 CMD [“php-fpm”]
每当图像被build立,我尝试启动docker run php_fpm_prod:v0.1
它给了我错误: /bin/sh: 1: [“php-fpm”]: not found
。
但是每当我尝试用docker run php_fpm_prod:v0.1 php-fpm
它就会成功启动:
[03-Nov-2015 10:24:38] NOTICE: fpm is running, pid 1 [03-Nov-2015 10:24:38] NOTICE: ready to handle connections
我怎样才能使docker run php_fpm_prod:v0.1
行为像docker run php_fpm_prod:v0.1 php-fpm
?
谢谢。
一个PHP fpm Dockerfile的CMD ["php-fpm"]
已经是CMD ["php-fpm"]
(覆盖debian-jessie CMD
),所以你不需要再指定它。
那些debian或者PHP的fpm Dockerfile没有定义一个ENTRYPOINT
,这意味着默认的应用/bin/sh -c
。
首先,确保在“ Dockerfile CMD
command not found
”中使用正确的引号:
CMD ["php-fpm"]
(或者根本不指定CMD
,因为它将从基本图像inheritance)