You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Entrypoint脚本无法接收docker run传入参数问题咨询

Docker Entrypoint脚本无法接收docker run参数的解决方法

问题根源

你使用的是shell格式的ENTRYPOINT指令(ENTRYPOINT /entrypoint.sh),这种写法会让Docker通过/bin/sh -c "/entrypoint.sh"启动进程,此时docker run传入的参数不会传递给你的脚本,而是被shell进程忽略,导致脚本中的$@为空。

修复步骤

将Dockerfile中的ENTRYPOINT改为exec格式(数组形式):

COPY ./entrypoint.sh /entrypoint.sh  
RUN chmod +x /entrypoint.sh  
ENTRYPOINT ["/entrypoint.sh"]

验证结果

重新构建镜像后执行原命令:

docker run given/image:latest "A B C"

即可得到预期输出:

I received: A B C

补充说明

如果你的entrypoint脚本最终需要启动主进程,建议在脚本中使用exec执行主命令,这样可以避免创建额外的shell进程,同时保证信号(如SIGTERM)能正确传递给主进程。示例:

#!/bin/bash
echo "I received:" "$@"
exec your-main-command "$@"

内容的提问来源于stack exchange,提问作者u-ways

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 16:23:12