繁体   English   中英

使用 Dockerfile CMD 找不到命令

[英]Command Not Found with Dockerfile CMD

我有一个使用的 Dockerfile

CMD ['/usr/local/bin/gunicorn', '-b 0.0.0.0:8000', 'myapp.wsgi']

但是当我使用docker run --rm myimage:latest运行容器时,我收到一个错误:

/bin/sh: 1: [/usr/local/bin/gunicorn,: 未找到

然而,当我运行docker run --rm -it myimage:latest /bin/bash进入容器时,我可以看到 gunicorn 运行,并且运行which gunicorn返回了which gunicorn的正确路径。 为什么运行失败?

同样,我计划添加

ENTRYPOINT ['/entrypoint.sh']

到我的 Dockerfile,但是当我运行它时,我收到错误

/bin/sh: 1: /bin/sh: [/entrypoint.sh]: 未找到

entrypoint.sh文件包含:

#! /bin/bash
echo 'Starting app...'
cd /app || exit;
python manage.py migrate;

那么为什么当所有命令都存在时它一直说找不到命令呢?

这里的问题是引号 使用双"引号。

来自Docker 文档

exec 形式被解析为 JSON 数组,这意味着您必须在单词周围使用双引号 (") 而不是单引号 (')。

这适用于其他指令,例如 RUN、LABEL、ENV、ENTRYPOINT 和 VOLUME。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM