2015-11-03 58 views
2

我正在用官方圖像構建我自己的Dockerfile,因爲它是基礎,我正在使用Ansible調整它以進行簡單的配置更改。在dockerfile的相關部分:Docker裏面的二進制文件當沒有明確調用時,啓動時沒有啓動

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的行爲很像0​​?

謝謝。

回答

1

一個php fpm DockerfileCMD已經CMD ["php-fpm"](重寫debian-jessie CMD),所以你不應該需要重新指定。

那些debian或php fpm Dockerfile沒有定義ENTRYPOINT這意味着默認的應用/bin/sh -c

首先,確認,如「Dockerfile CMDcommand not found」的使用權行情:

CMD ["php-fpm"] 

(或不指定CMD可言,因爲它會從基圖像繼承)

+0

沒有指定CMD完全解決了我的問題 – Hyperfocus

+1

@Hyperfocus如果你確實指定了一個'CMD',確保使用''',而不是curly'「'(http://typographyforlawyers.com/straight-and-curly- quotes.html) – VonC