gpt4 book ai didi

docker - 在 Dockerfile 中使用 ENTRYPOINT 会使基础镜像的 CMD 被忽略

转载 作者:行者123 更新时间:2023-12-02 17:56:39 26 4
gpt4 key购买 nike

看起来好像我的 Dockerfile 使用了 ENTRYPOINT脚本,其基本图像的 CMD被忽略。有人能告诉我为什么和/或在文档中解释了这种行为吗?

这是一个 Dockerfile 扩展官方 php:7.0-fpm 镜像(使用 CMD ["php-fpm"] )的示例。在入口点脚本中,我期望 $@包含字符串 php-fpm 的变量但它是空的。

marc@imac-marc:/opt/php-docker$ cat Dockerfile-php
FROM php:7.0-fpm
COPY utils/entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]

marc@imac-marc:/opt/php-docker$ cat utils/entrypoint.sh
#!/usr/bin/env bash
echo "CMD = $@"

marc@imac-marc:/opt/php-docker$ docker build -t me:myImage -f Dockerfile-php .
Sending build context to Docker daemon 276 kB
Step 1 : FROM php:7.0-fpm
---> d66add11c05d
Step 2 : COPY utils/entrypoint.sh /usr/local/bin/
---> a62ef60a202b
Removing intermediate container 20bd7782844e
Step 3 : RUN chmod +x /usr/local/bin/entrypoint.sh
---> Running in 27af4ffbd6c0
---> 77fba35c804d
Removing intermediate container 27af4ffbd6c0
Step 4 : ENTRYPOINT /usr/local/bin/entrypoint.sh
---> Running in 6779b16542ec
---> 326970218669
Removing intermediate container 6779b16542ec
Successfully built 326970218669

marc@imac-marc:/opt/php-docker$ docker run me:myImage
CMD =

如果我添加 CMD ["php-fpm"]到我的 Dockerfile,它按预期工作。

最佳答案

https://github.com/moby/moby/issues/5147 - 它解释了实现此行为的时间和原因。

关于docker - 在 Dockerfile 中使用 ENTRYPOINT 会使基础镜像的 CMD 被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38893747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com