我正在使用官方图像构建我自己的Dockerfile,因为它是我用Ansible调整的简单配置更改的基础。 dockerfile的相关部分:
FROM php:7.0-fpm
MAINTAINER hyperfocus
# Ansible cmds
EXPOSE 9000
CMD [“php-fpm”]
每当构建图片并尝试使用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
?
感谢。
答案 0 :(得分:1)
php fpm Dockerfile的CMD
已经CMD ["php-fpm"]
(覆盖debian-jessie CMD
),因此您无需再次指定。
那些debian或php fpm Dockerfile没有定义ENTRYPOINT
,这意味着默认值为/bin/sh -c
。
首先,确保在“Dockerfile CMD
command not found
”中使用正确的引号:
CMD ["php-fpm"]
(或者根本不指定CMD
,因为它将从基础图像继承而来)