作者:XL | 来源:互联网 | 2023-01-10 16:06
我有一个使用以下Dockerfile构建的图像:
FROM php:7-fpm
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint
RUN chmod +x /usr/local/bin/docker-entrypoint
ENTRYPOINT ["docker-entrypoint"]
它使用自定义入口点,它是以下bash脚本:
#!/bin/bash
set -e
echo "STARTING PHP FPM, CMD $@"
docker-php-entrypoint "$@"
在它的Dockerfile中定义的父图像的命令是CMD ["php-fpm"]
现在我希望这个命令可以在我的图像中继承.但是,当我运行图像时,命令为空.这是docker run
命令的输出:
启动PHP FPM,CMD
但是,如果我复制CMD ["php-fpm"]
到我的自定义的末尾Dockerfile
,输出是
启动PHP FPM,CMD php-fpm
[01-Nov-2017 20:04:02]注意:fpm正在运行,pid 7
[01-Nov-2017 20:04:02]注意:准备好处理连接
为什么父母的CMD
指令没有继承?
1> BMitch..:
这种行为试图更直观,但我同意这有点令人困惑.你在这里看到原始问题.这个问题是大多数人ENTRYPOINT
在儿童图像中定义不再需要CMD
父图像.
使用当前行为,如果ENTRYPOINT
在子图像中定义一个子图像,则CMD
父图像将为空,因此如果需要设置它,则需要重新定义它.