2.4. Jenkins Slave の使用


OpenShift Container Platform Jenkins イメージは、.NET Core 3.1 スレーブイメージの自動検出を提供します (dotnet-31)。自動検出が機能するには、Jenkins スレーブ ConfigMap yaml ファイルをプロジェクトに追加する必要があります。

  1. Jenkins がデプロイされているプロジェクトに切り替えます。

    $ oc project <projectname>
    Copy to Clipboard Toggle word wrap
  2. dotnet-jenkins-slave.yaml ファイルを作成します。<serviceAccount> 要素に使用される値は、Jenkins スレーブによって使用されるアカウントです。値の指定がない場合は、default サービスアカウントが使用されます。

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: dotnet-jenkins-slave-31
      labels:
        role: jenkins-slave
    data:
      dotnet31: |-
        <org.csanchez.jenkins.plugins.kubernetes.PodTemplate>
          <inheritFrom></inheritFrom>
          <name>dotnet-31</name>
          <instanceCap>2247483647</instanceCap>
          <idleMinutes>0</idleMinutes>
          <label>dotnet-31</label>
          <serviceAccount>jenkins</serviceAccount>
          <nodeSelector></nodeSelector>
          <volumes/>
          <containers>
            <org.csanchez.jenkins.plugins.kubernetes.ContainerTemplate>
              <name>jnlp</name>
              <image>registry.access.redhat.com/dotnet/dotnet-31-jenkins-slave-rhel7:latest</image>
              <privileged>false</privileged>
              <alwaysPullImage>true</alwaysPullImage>
              <workingDir>/tmp</workingDir>
              <command></command>
              <args>${computer.jnlpmac} ${computer.name}</args>
              <ttyEnabled>false</ttyEnabled>
              <resourceRequestCpu></resourceRequestCpu>
              <resourceRequestMemory></resourceRequestMemory>
              <resourceLimitCpu></resourceLimitCpu>
              <resourceLimitMemory></resourceLimitMemory>
              <envVars/>
            </org.csanchez.jenkins.plugins.kubernetes.ContainerTemplate>
          </containers>
          <envVars/>
          <annotations/>
          <imagePullSecrets/>
          <nodeProperties/>
        </org.csanchez.jenkins.plugins.kubernetes.PodTemplate>
    Copy to Clipboard Toggle word wrap
  3. 設定をプロジェクトにインポートします。

    $ oc create -f dotnet-jenkins-slave.yaml
    Copy to Clipboard Toggle word wrap

    スレーブイメージが使用されるようになりました。

例: 以下の例は、OpenShift Container Platform に Jenkins パイプラインを追加する方法を示しています。Jenkins パイプラインが追加され、Jenkins マスターが実行されていない場合、OpenShift はマスターを自動的にデプロイします。Jenkins サーバーインスタンスのデプロイおよび設定に関する詳細は、OpenShift Container Platform および Jenkins を参照してください。

手順例の BuildConfig yaml ファイルには、dotnet-31 Jenkins スレーブを使用して設定された単純な Jenkins パイプラインが含まれます。サンプル BuildConfig yaml ファイルには 3 つの段階があります。

Jenkins master-slave パイプラインの例を設定するには、以下の手順を行います。

  1. buildconfig.yaml ファイルを作成します。

    kind: BuildConfig
    apiVersion: v1
    metadata:
      name: dotnetapp-build
    spec:
      strategy:
        type: JenkinsPipeline
        jenkinsPipelineStrategy:
          jenkinsfile: |-
            node("dotnet-31") {
              stage('clone sources') {
                sh "git clone https://github.com/redhat-developer/s2i-dotnetcore-ex --branch dotnetcore-3.1 ."
              }
              stage('publish') {
                dir('app') {
                  sh "dotnet publish -c Release"
                }
              }
              stage('create image') {
                dir('app') {
                  sh 'oc new-build --name=dotnetapp dotnet:3.1 --binary=true || true'
                  sh 'oc start-build dotnetapp --from-dir=bin/Release/netcoreapp3.1/publish --follow'
                }
              }
            }
    Copy to Clipboard Toggle word wrap
  2. BuildConfig ファイルを OpenShift にインポートします。

    $ oc create -f buildconfig.yaml
    Copy to Clipboard Toggle word wrap
  3. OpenShift コンソールを起動します。Builds > Pipelines の順 に移動します。dotnetapp-build パイプラインが利用可能である。
  4. Start Pipeline をクリックします。Jenkins イメージを最初にダウンロードする必要があるため、ビルドを開始するまでに時間がかかる場合があります。

    ビルド時に、OpenShift コンソールでさまざまなパイプラインステージが完了したかどうかを確認できます。View Log をクリックし、Jenkins で完了したパイプラインステージを確認することもできます。

  5. Jenkins Pipeline ビルドが完了したら、Builds > Images の順に移動します。dotnetapp イメージがビルドされ、利用可能です。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat