コンテナーで実行されているJenkinsスレーブを使用する場合、DockerのDockerの代替または「安全な」(セキュリティの観点から)実装とは何ですか。
アーキテクチャの例:
- Dockerコンテナーとして実行されているJenkinsマスター
- Dockerコンテナーとして実行されているJenkinsスレーブ
- Dockerコンテナで実行されるテストタスク
いくつかの既知の選択肢:
- DOOD(Docker-Outside-Of-Docker)
- Docker APIを使用したJenkinsプラグイン
制約の明確化:アイデアは、Jenkinsをオーケストレーターとして使用し、Dockerをクリーンな環境で使用することです。残りのアーキテクチャは変更される可能性があります。
@RichardSlaterワークロードの定義方法(ジョブ/日、スレーブ/マスター、cpu、データ/ジョブ)によって異なりますが、質問はより一般的です。記載されているすべてのセキュリティ、カメ、パフォーマンスは回避すべき正当な候補であり、「JérômePetazzoniの利点と欠点の説明」で言及されている「ハッキングハック」の匂い
—
ロンボブ
いいえ、あなたのアーキテクチャがまだdocker内のjenkinsスレーブに依存する必要があるかどうかはまだ不明です。とにかく、同じホスト(またはdocker image FWIW)に複数のバージョンがあるruby / python / javaのトリックはよく知られており、nodejsやGoのトリックは「一般的」ではなく、設定も簡単ではありません。だから私はあなたがどうやってオープンしているのか、そうでないのか本当にわかりません 計画がまだジェンキンスをオーケストレーターとして、Dockerをクリーンな環境で使用することである場合、答える場所があります。スレーブがDocker環境内にある必要がある場合、すべてが実際にはテスト結果を信頼できない醜いハックになります。
—
Tensibai 2017年
@Tensibaiは質問についての説明を指示してくれてありがとう、私の指摘は、あなたが言及したことを含め、回答に創造性のためのより多くの余地を残すことをより一般的にすることでした。特定のケースについては、トリックが知られており、使用されている場合、Dockerが提供する機会は、すべてのタイプのワークロードに対して1つの実装方法を持つことです。可能であれば、安定して安全にすることに焦点を当ててみてください。
—
ロンボブ2017年
@Tensibaiフィードバックをありがとうございます。質問に説明が追加されました。
—
ロンボブ2017年
Docker-in-docker
-トピックに新しい人は誰でも、JérômePetazzoniのの利点と欠点の説明を読む価値があります。