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

Docker执行命令报错OCI Runtime Create Failed:lljvm-cc未找到求助

解决Docker容器中lljvm-cc命令找不到的问题

你遇到的核心问题是非交互式Shell不会自动加载用户的环境配置文件——这就是为什么你在交互式bash里能正常运行lljvm-cc,但直接通过docker run执行命令或/bin/bash -c调用时就报错的原因。

快速解决方案(无需修改镜像)

方法1:使用lljvm-cc的绝对路径执行

首先在交互式容器里用which lljvm-cc找到命令的绝对路径:

root@6a70a2346951:/c_files# which lljvm-cc
# 假设输出是 /usr/local/bin/lljvm-cc

然后把命令改成用绝对路径执行:

docker run -v /home/sven/git/cerberos/CerberOS/uJ/services/c/:/c_files -w /c_files -it lljvm_work /usr/local/bin/lljvm-cc test_c_srv.c -l_c_support -o test_c_srv -g3

方法2:显式加载环境配置文件后执行

如果lljvm-cc的路径是在~/.bashrc或/etc/profile这类配置文件里添加的,你可以在命令里先加载配置再执行:

docker run -v /home/sven/git/cerberos/CerberOS/uJ/services/c/:/c_files -w /c_files -it lljvm_work /bin/bash -c 'source ~/.bashrc && lljvm-cc test_c_srv.c -l_c_support -o test_c_srv -g3'

长期解决方案(修改镜像)

如果你有权限修改lljvm_work镜像的Dockerfile,可以把lljvm-cc所在目录加到系统全局PATH中,这样不管是交互式还是非交互式Shell都能直接调用:

# 在Dockerfile中添加这一行(替换成实际的命令目录)
ENV PATH="$PATH:/usr/local/bin"

然后重新构建镜像:

docker build -t lljvm_work .

为什么交互式Shell能正常运行?

当你用-it启动交互式bash时,bash会自动加载~/.bashrc、/etc/profile等环境配置文件,这些文件里可能包含了添加lljvm-cc路径到PATH的语句;而直接执行命令或用/bin/bash -c属于非交互式模式,bash默认不会加载这些配置,导致PATH中没有命令所在目录,自然找不到lljvm-cc。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:03:58