Я создаю свой собственный Dockerfile с официальными изображениями в качестве его основы, которую я настраиваю с помощью Ansible для простых изменений конфигурации. Соответствующая часть файла 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
вести себя как docker run php_fpm_prod:v0.1 php-fpm
?
Благодарю.
CMD
из php fpm Dockerfile уже CMD ["php-fpm"]
(переопределяя Debian-Jessie CMD
), поэтому вам не нужно указывать это снова.
Эти Dockerfile для Debian или PHP не определяют ENTRYPOINT
что означает, что применяется по умолчанию /bin/sh -c
,
Сначала убедитесь, что вDockerfile CMD
command not found
«использовать правильные цитаты:
CMD ["php-fpm"]
(Или не указывайте CMD
вообще, так как он будет унаследован от базового образа)
Других решений пока нет …