我试图执行以下操作:
运行特定的泊坞窗容器lljvm_work
。
让它在../services/c
中安装一个本地目录(c_files
及其泊坞镜镜像)。
在那里运行一个命令(lljvm_cc
)来处理一些文件。
我尝试做的是:
"docker run -v /home/sven/git/cerberos/CerberOS/uJ/services/c/:/c_files -tid lljvm_work llvjm_cc /c_files/test_c_srv.c -lc_support -o test_c_srv -g3"
不幸的是,这会产生如下错误:
docker:来自守护程序的错误响应:OCI运行时创建失败:Container_linux.go:348:启动容器进程导致" exec:\" lljvm-cc \" ::找不到可执行文件在$ PATH":未知
我已尝试将命令放在引号等但无法使其工作。有什么建议吗?
附录: 我还尝试过的是以下内容
docker run -v /home/sven/git/cerberos/CerberOS/uJ/services/c/:/c_files -w /c_files -it lljvm_work /bin/bash -c 'lljvm-cc test_c_srv.c -l_c_support -o test_c_srv -g3'
/bin/bash: lljvm-cc: command not found
正如您所看到的那样,它不起作用。这是在Ubuntu上。
使用如下的交互式shell单独执行这些步骤确实有效。 E.g:
~$ docker run -v /home/sven/git/cerberos/CerberOS/uJ/services/c/:/c_files -w /c_files -it lljvm_work /bin/bash
//Container started
root@6a70a2346951:/c_files# lljvm-cc test_c_srv.c -l_c_support -o test_c_srv -g3
// Desired output is created
答案 0 :(得分:0)
似乎给可执行文件的完整路径确实有效,尽管从容器本身内部不需要这样做。
无论如何,以下工作:
docker run -v $(UJ_DIR)/services/c/:/c_files -w /c_files -it lljvm_work \
/bin/bash -c '../usr/local/lib/lljvm/lljvm-cc $(SRV).c -l_c_support -o $(SRV) -g3'