付録C nodeshift を使用して Node.js アプリケーションをデプロイする Jenkins のフリースタイルプロジェクトの設定
ローカルホストから nodeshift を使用して Node.js アプリケーションをデプロイするのと同様に、Jenkins が nodeshift を使用して Node.js アプリケーションをデプロイするように設定できます。
前提条件
- OpenShift クラスターへのアクセス
- 同じ OpenShift クラスターで実行している Jenkins コンテナーイメージ。
- Jenkins サーバーにインストールされているNode.js プラグイン。
nodeshift および Red Hat ベースイメージを使用するように設定された Node.js アプリケーション。
nodeshift での Red Hat ベースイメージの使用例
nodeshift --dockerImage=registry.access.redhat.com/rhscl/ubi8/nodejs-12 ...
$ nodeshift --dockerImage=registry.access.redhat.com/rhscl/ubi8/nodejs-12 ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow - GitHub で利用可能なアプリケーションのソース。
手順
アプリケーションの新しい OpenShift プロジェクトを作成します。
- OpenShift Web コンソールを開き、ログインします。
- Create Project をクリックし、新しい OpenShift プロジェクトを作成します。
- プロジェクト情報を入力して、Create をクリックします。
Jenkins がそのプロジェクトにアクセスできることを確認します。
たとえば、Jenkins のサービスアカウントを設定している場合は、アカウントのアプリケーションのプロジェクトへの
編集アクセスがあることを確認します。Jenkins サーバーで新しい フリースタイルの Jenkins プロジェクト を作成します。
- New Item をクリックし ます。
- 名前を入力して Freestyle project を選択し、OK をクリックし ます。
- Source Code Management で Git を選択し、アプリケーションの GitHub URL を追加します。
- Build Environment で、Provide Node & npm bin/ フォルダーを PATH にチェックし、Node.js 環境が設定されていることを確認してください。
-
Build で Add build step を 選択し、
Execute Shellを選択します。 以下を Command エリアに追加します。
npm install -g nodeshift nodeshift --dockerImage=registry.access.redhat.com/rhscl/ubi8/nodejs-12 --namespace=MY_PROJECT
npm install -g nodeshift nodeshift --dockerImage=registry.access.redhat.com/rhscl/ubi8/nodejs-12 --namespace=MY_PROJECTCopy to Clipboard Copied! Toggle word wrap Toggle overflow MY_PROJECTを、アプリケーションの OpenShift プロジェクトの名前に置き換えます。- Save をクリックし ます。
Jenkins プロジェクトのメインページから Build Now をクリックし、アプリケーションがビルドされ、アプリケーションの OpenShift プロジェクトにデプロイします。
また、アプリケーションの OpenShift プロジェクトでルートを開いて、アプリケーションがデプロイされていることを確認することもできます。
次のステップ
-
GITSCM ポーリング を追加すること、または the
Poll SCMビルドトリガー を使用することを検討してください。これらのオプションにより、新規コミットが GitHub リポジトリーにプッシュされるたびにビルドを実行できます。 -
Node.js プラグインを設定する際に、グローバルパッケージとして nodeshift を 追加することを検討してください。これにより、
Execute Shellビルドステップを追加する際に npm install -gnodeshift を省略できます。 - デプロイ前にテストを実行するビルドステップを追加することを検討してください。