ここではいくつかのことが起こっています。私は第一、第二のエラーを見てみたいのですが:
drone/drone
画像が自動的に(あなたがdocker inspect
を使用してEntrypoint
キーを探すことで決定することができます)/drone
コマンドを実行するように設定されています。あなたが実行するのであれば:
docker run drone/drone:0.7 help
をあなたは、コンテナ内で、実行中の終わる:
drone help
そしてもちろん、あなたが実行した場合:
docker run drone/drone:0.7 /bin/bash
あなたは、コンテナに、実行されています:
drone /bin/bash
あなたのエラーメッセージdrone
コマンドに認識できないオプションを渡しているので、「/ bin/bash」のヘルプトピックは表示されません。
最初のエラーははるかに簡単です。あなたのエラーメッセージは次のとおりです:
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 -
:
は何
/bin/bash
、ノー
ssh
、ノー
git
、ありません
.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/
をなど、あなたので、あなたの現在の計画には大したことはないでしょう。ホスト上のリモートリポジトリを複製し、ホストボリュームマウント(-v /host/path:/container path
)を使用してコンテナに公開するか、必要なツールが含まれているカスタムイメージを構築することを検討してください。
@larsksの答えは正しい答えですが、私は無人機が '無人機/無人機 '画像の中であなたのリポジトリをクローン化しないという事実を拡張したかったのです。したがって、 '無人機/無人機 'イメージにSSHキーを追加しても影響はありません。代わりに、無人機の秘密(公式ドキュメントを参照)を使用してリポジトリに秘密鍵を登録し、実行時にプライベートgit + sshリポジトリをクローンすることができます。あるいは、git + httpsを使用して、通常はゼロ設定でサポートされる依存関係をクローンします。 –