这里发生了几件事。我想先看看第二个错误:
drone/drone
映像配置为自动运行/drone
命令(您可以通过使用和docker inspect
查找Entrypoint
密钥来确定)。因此,如果您运行:
docker run drone/drone:0.7 help
你最终在容器内运行:
drone help
当然,如果你运行:
docker run drone/drone:0.7 /bin/bash
您正在容器中运行:
drone /bin/bash
因此,您看到的错误消息(“'/bin/bash' 没有帮助主题”),因为您将无法识别的选项传递给drone
命令。
第一个错误要简单得多。您的错误信息是:
exec: \"/bin/bash\": stat /bin/bash: no such file or directory
这似乎很清楚。没有/bin/bash
。事实上,如果您检查图像的内容,您会发现只有一个最小的文件系统。最简单的查看方法是启动一个容器,然后使用docker export
,如下所示:
$ docker run drone/drone:0.7 help
[...output doesn't matter...]
$ docker export $(docker ps -lq) | tar tf -
这向您展示了:
.dockerenv
dev/
dev/console
dev/pts/
dev/shm/
drone
etc/
etc/hostname
etc/hosts
etc/mtab
etc/resolv.conf
etc/ssl/
etc/ssl/certs/
etc/ssl/certs/ca-certificates.crt
proc/
sys/
没有/bin/bash
,没有ssh
,没有git
,等等,所以你不会对你目前的计划有太多的运气。您可能需要考虑在您的主机上克隆远程存储库,然后使用主机卷挂载 ( -v /host/path:/container path
) 将它们公开给您的容器,或者构建一个包含您需要的工具的自定义映像。