这里有几件事情。我想先看看第二个错误:
该 drone/drone 图像配置为自动运行 /drone 命令(您可以使用它来确定) docker inspect 并寻找 Entrypoint 键)。所以,如果你运行:
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 命令。
drone
第一个错误要简单得多。您的错误消息是:
exec: \"/bin/bash\": stat /bin/bash: no such file or directory
这似乎很清楚。没有 /bin/bash 。实际上,如果你检查图像的内容,你会发现只有一个最小的文件系统。最简单的方法是启动容器,然后使用 docker export , 像这样:
/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 ),或构建包含所需工具的自定义图像。
ssh
git
-v /host/path:/container path