自定义Docker镜像不继承CMD

时间:2017-11-01 20:07:13

标签: docker dockerfile

我使用以下Dockerfile构建了一个图像:

#!/bin/bash
set -e
echo "STARTING PHP FPM, CMD $@"
docker-php-entrypoint "$@"

它使用自定义入口点,它是以下bash脚本:

CMD ["php-fpm"]

Dockerfile中定义的父图像的命令是docker run

现在我希望这个命令能够在我的图像中继承。但是,当我运行图像时,命令为空。以下是CMD ["php-fpm"]命令的输出:

  

启动PHP FPM,CMD

但是,如果我将Dockerfile复制到自定义CMD的末尾,则输出为

  

启动PHP FPM,CMD php-fpm

     

[01-Nov-2017 20:04:02]注意:fpm正在运行,pid 7

     

[01-Nov-2017 20:04:02]注意:准备好处理连接

为什么父母的{{1}}指令没有继承?

1 个答案:

答案 0 :(得分:10)

这种行为试图更直观,但我同意它有点令人困惑。你看到了original issue here。问题在于,定义子图像中ENTRYPOINT的大多数人不再需要父图像中的CMD

根据当前行为,如果您在子图像中定义ENTRYPOINT,则父图像中的CMD将为空,因此您需要重新定义它,如果你需要设置它。