首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker `/bin/sh: 1:[<executable>,:未找到`

Docker `/bin/sh: 1:[<executable>,:未找到`
EN

Stack Overflow用户
提问于 2020-07-23 18:00:24
回答 3查看 836关注 0票数 0

我想运行一个安装了pip的可执行文件。运行下面的图像会得到/bin/sh: 1: [hbd,: not found

代码语言:javascript
复制
FROM python:3.8.3-slim-buster

WORKDIR /data

COPY cookies.txt /data/cookies.txt

RUN python3.8 -m pip install humblebundle-downloader

CMD ["hbd", "download", "--cookie-file", "/data/cookies.txt", "--library-path", "/data" "--progress", "--update"]

我也尝试过CMD ["/usr/local/bin/python3.8", "-m", "hbd", "download",...CMD python -m hbd download...以及类似的工具。导致/bin/sh: 1: [/usr/local/bin/python3.8,: not found等。

如果我用CMD which python3.8 && which hbd && find / -executable -type f -name hbd替换CMD ...,我会得到:

代码语言:javascript
复制
/usr/local/bin/python3.8
/usr/local/bin/hbd
/usr/local/bin/hbd

对我来说,它告诉我可执行文件在那里!?

如何执行清晰可执行的可执行文件?

我无计可施了。谢谢!

编辑:我尝试了基础图像的‘非瘦’版本,即FROM python:3.8.5-buster,没有骰子。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-07-23 18:32:08

你好,我尝试你的Dockerfile失败了,我在里面运行了一个shell,并尝试了hbd,命令是可用的:

代码语言:javascript
复制
docker run -ti 7552b04ea25b sh
# hbd
usage: hbd [-h] {download} ...
hbd: error: the following arguments are required: action

然后我试着去掉引号、方括号和逗号,它起作用了:

代码语言:javascript
复制
CMD hbd download --cookie-file /data/cookies.txt --library-path /data --progress --update

我再次尝试你的CMD,它失败了,我缩短了它,它起作用了,经过几次试验和错误,我终于看到你忘记了2个参数之间的逗号。你的命令应该是(注意在两个参数之间添加了逗号):

代码语言:javascript
复制
CMD ["hbd", "download", "--cookie-file", "/data/cookies.txt", "--library-path", "/data", "--progress", "--update"]

因此,下一次,尝试你的假设,并尝试调查你自己:

假设:找不到可执行文件?然后,通过在容器中运行shell来检查容器中的命令,从而对其进行测试。结论:找到了路径和可执行文件。

假设: CMD语法错误?让我们尝试一种不同的语法。它与CMD hbd一起工作。所以很明显这就是CMD语法...让我们试着调试它,并通过二分法来制作它...嘿,缺少逗号;)问题解决了。

票数 1
EN

Stack Overflow用户

发布于 2020-07-23 18:45:29

CMD ["hbd", "download", "--cookie-file", "/data/cookies.txt", "--library-path", "/data" "--progress", "--update"]

应该是

CMD ["hbd", "download", "--cookie-file", "/data/cookies.txt", "--library-path", "/data", "--progress", "--update"]

我认为发生的情况是,由于CMD没有被指定为有效的JSON数组,所以它被解释为以[开头的普通命令,这当然是无效的。

票数 1
EN

Stack Overflow用户

发布于 2020-07-23 18:04:29

该问题可能是因为未设置环境变量或未将路径导出到环境。尝试这两种方法,可能会有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63051628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档