You need to enable JavaScript to run this app. Dockerfile配置ENTRYPOINT启动报错no such file or directory: OCI not found求助
优惠活动
大模型
产品
解决方案
定价
更多

Dockerfile配置ENTRYPOINT启动报错no such file or directory: OCI not found求助

报错原因

你使用的是ENTRYPOINT的exec数组语法,这种语法不会调用系统shell执行命令,只会将数组中的第一个元素当做可执行文件路径、后续元素当做传入参数处理。你将变量赋值和启动命令写在同一个数组元素中,Docker会把CONFIG_FILE=path/to/config.file ./main.py这一整段字符串当做单个可执行文件的名称去查找,系统中自然不存在对应文件,就会抛出OCI runtime相关的文件不存在错误。
你换成CMD也会报错的原因是:CMD的exec数组语法和ENTRYPOINT遵循完全相同的解析规则,一样不会处理shell变量赋值这类语法。

解决办法

你可以根据自己的使用场景任选以下任意一种方案修改:

  • 方案1:使用shell形式的ENTRYPOINT,去掉数组括号,Docker会自动调用shell解析命令
    对应Dockerfile写法:
    ENTRYPOINT CONFIG_FILE=path/to/config.file ./main.py
    
  • 方案2:保持exec数组语法,手动指定shell执行命令
    对应Dockerfile写法:
    ENTRYPOINT ["sh", "-c", "CONFIG_FILE=path/to/config.file ./main.py"]
    
  • 方案3:如果该环境变量为固定值,也可以单独用ENV指令声明,单独写启动命令
    对应Dockerfile写法:
    ENV CONFIG_FILE=path/to/config.file
    ENTRYPOINT ["./main.py"]
    

额外注意:确认main.py文件头部的shebang声明正确(Python脚本第一行应为#!/usr/bin/env python3),避免后续出现其他执行错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 22:36:00