8

Jenkins を実行すると、アプリが Docker 化されます。つまり、コンテナーを実行すると、ポート 3000 が公開され、そこにブラウザーを向けることができます。すべての Github PR で、その git commit を実行中のコンテナーのどこかにデプロイし、Jenkins にアクセスできるリンクを PR にポストバックさせたいと考えています。PR の更新時に自動的に再展開され、PR のクローズ/解決時に破棄されます。

kubernetes と小さなランチャーを見てきましたが、1 つのボックスにしかデプロイできないと仮定すると、これを実現する最も簡単な方法は何ですか?

4

3 に答える 3

3

問題を解決できるjenkinsプラグインgithub-pullrequestがあります。

前提条件:

  1. Webhook でビルドをトリガーする場合は、jenkins サーバーがインターネット経由でアクセスできます。
  2. git リポジトリにアクセス/管理するための github API トークンがあり、設定で自分で生成できます。

ガイドの構成に従って、 jenkins と github の統合をセットアップしてください。

構成後:

  • PR イベントによってビルドをトリガーできます: open / commit changed / closed、または特定のパターンでコメントします
  • 環境変数${GITHUB_PR_STATE}を介して PR ステータスを取得できるため、特定の値でコンテナーを開始または停止できます。
  • docker コンテナーを起動した後、PR にコメントを発行して、Web サービスのアドレスを伝えることができます。

マルチ PR を使用した cotainer の公開ポートについては、コンテナを で実行するだけ-p 3000で、docker ホスト上の範囲内のポートが自動公開されdocker port <container>、特定のポート番号が表示されます。たとえば、次のようになります。

  • container1宛名<host>:32667ありPR1
  • container2宛名<host>:35989ありPR2
于 2017-03-20T16:55:39.883 に答える