Python Docker`/bin/sh:1:[<;可执行文件>;,:未找到`
我想运行一个安装了pip的可执行文件。运行下面的图像会给我提供Python Docker`/bin/sh:1:[<;可执行文件>;,:未找到`,python,docker,dockerfile,Python,Docker,Dockerfile,我想运行一个安装了pip的可执行文件。运行下面的图像会给我提供/bin/sh:1:[hbd,:notfound: 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", "--cooki
/bin/sh:1:[hbd,:notfound
:
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,:找不到
等等
如果我将CMD…
替换为CMD which python3.8&&which hbd&&find/-executable-type f-name hbd
我得到:
/usr/local/bin/python3.8
/usr/local/bin/hbd
/usr/local/bin/hbd
对我来说,它告诉我可执行文件在那里
如何执行清晰呈现的可执行文件
我束手无策,谢谢你
编辑:
我尝试了基本映像的“非精简”版本,即python:3.8.5-buster中的
,没有骰子。问题可能是因为没有设置环境变量或没有将路径导出到环境中。尝试这两种方法中的任何一种都可能有帮助。问题可能是因为没有设置环境变量或者路径未导出到环境中。尝试这两种方法之一可能会有所帮助您好我正在尝试Dockerfile失败,我在中运行了一个shell并尝试了hbd,命令可用性很好:
docker run -ti 7552b04ea25b sh
# hbd
usage: hbd [-h] {download} ...
hbd: error: the following arguments are required: action
然后,我尝试在不使用引号、方括号和逗号的情况下使用,效果很好:
CMD hbd download --cookie-file /data/cookies.txt --library-path /data --progress --update
我再次尝试使用你的CMD,失败了,我缩短了它,成功了,经过几次尝试和错误,我终于看到你忘记了两个参数之间的逗号。你的命令应该是(注意,添加了两个参数之间的逗号):
所以下一次,尝试你的假设并尝试调查你自己:
假设:未找到可执行文件?然后通过在容器内运行shell检查容器内的命令来测试它。结论:找到路径和可执行文件
假设:CMD语法错误?让我们尝试另一种语法。它与CMD hbd一起工作。因此,是的,很明显,这就是CMD语法…让我们尝试调试它,并用二分法制作它…嘿,逗号丢失;)问题已解决。您好,我正在尝试Dockerfile。它失败了,我在里面运行了一个shell,并尝试了hbd,命令可用罚款:
docker run -ti 7552b04ea25b sh
# hbd
usage: hbd [-h] {download} ...
hbd: error: the following arguments are required: action
然后,我尝试在不使用引号、方括号和逗号的情况下使用,效果很好:
CMD hbd download --cookie-file /data/cookies.txt --library-path /data --progress --update
我再次尝试使用你的CMD,失败了,我缩短了它,成功了,经过几次尝试和错误,我终于看到你忘记了两个参数之间的逗号。你的命令应该是(注意,添加了两个参数之间的逗号):
所以下一次,尝试你的假设并尝试调查你自己:
假设:未找到可执行文件?然后通过在容器内运行shell检查容器内的命令来测试它。结论:找到路径和可执行文件
假设:CMD语法是错误的?让我们尝试另一种语法。它与CMD hbd一起工作。很明显,这就是CMD语法…让我们试着调试它,并用二分法制作它…嘿,逗号丢失了;)问题解决了。CMD[“hbd”,“download”,“--cookie file”,“/data/cookies.txt”,“--library path”,“/data”“--progress”,“--update”]
应该是
CMD[“hbd”、“下载”、“--cookie文件”、“/data/cookies.txt”、“--library path”、“/data”、“--progress”、“--update”]
我认为现在发生的事情是,由于CMD
没有被指定为有效的JSON数组,因此它被解释为以[
开头的普通命令,这当然是无效的。CMD[“hbd”、“download”、“--cookie file”、“/data/cookies.txt”、“--library path”、“/data”“--progress”、“--update”]
应该是
CMD[“hbd”、“下载”、“--cookie文件”、“/data/cookies.txt”、“--library path”、“/data”、“--progress”、“--update”]
我认为正在发生的是,由于CMD
未指定为有效的JSON数组,因此它被解释为以[
这当然是无效的。谢谢。我认为这不是路径,因为我使用的是可执行文件的完整路径。你认为它可能是哪些环境变量?你确定python位于/usr/local/bin/中吗?如果是这种情况,请尝试在/etc/environment文件中设置此路径并进行检查?尽管你试图给出完整路径,但是试试这一次。是的,非常确定。如上所述,如果我用which…
/find
等替换CMD…
。我得到了正确的输出路径很好,请看我的另一个答案,我成功地运行了可执行文件。这是您用于CMD命令的语法。谢谢。我认为这不是路径,因为我使用的是完整的pa可执行文件的th。您认为它可能是哪些环境变量?您确定python位于/usr/local/bin/中吗?如果是这种情况,请尝试在/etc/environment文件中设置此路径并进行检查?尽管您尝试给出完整路径,但只需尝试一次。是的,非常确定。如上所述,如果我将CMD…
替换为Which…
>/find
等。我得到了正确的输出路径很好,请参见我的另一个答案,我成功地运行了可执行文件。这是您用于CMD命令的语法。看起来在“/data”
和“--progress”之间缺少逗号,
。这将导致此错误。看起来在“/data”
和“--progress”之间缺少一个逗号,
。那会导致这个错误。天哪!我已经盯着它看了,我不知道有多久了!!我感觉我已经经历了你推荐的调查步骤一百次了,但不知怎么错过了该死的“,”!谢谢!其他人也发现了这个错误,但是时间戳显示你是第一个。再次感谢你。你很好我。我们都有这样一个时刻,你知道我们意识到这只是一个逗号什么的。天哪!我已经盯着它看了,我不知道多久了!!我感觉我已经完成了你推荐的调查步骤