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

Docker容器手动执行Shell脚本正常,设为Entrypoint却报文件不存在错误

Docker容器启动报错的原因及解决方法

你的问题核心在于ENTRYPOINT的数组格式使用错误:

当你使用数组形式定义ENTRYPOINT时,Docker会将数组中的每个元素视为独立的命令或参数。你当前的写法:

ENTRYPOINT ["sh /var/lib/test/test.sh"]

Docker会把整个字符串sh /var/lib/test/test.sh当作一个可执行文件的路径去查找,而不是调用sh并把脚本路径作为参数传入,这就导致了“no such file or directory”的错误。

两种正确的写法:

  1. 拆分命令与参数为数组的独立元素:
ENTRYPOINT ["sh", "/var/lib/test/test.sh"]
  1. 使用shell格式(无需数组):
ENTRYPOINT sh /var/lib/test/test.sh

修改后重新构建镜像并运行,即可正常执行脚本。

内容的提问来源于stack exchange,提问作者Daigo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:35:33