逆引きマニュアル: Jenkins: Dockerの使用方法

投稿日: 更新日: Jenkins Docker

現時点での結論

daemonとして動かすことを想定しているようなので、 それ以外で使う場合、例えばビルドにはJenkinsの機能は使わないほうが良さそうです。 いろいろ格闘したんですが、うまくいかなかったので。。。

実行時の注意

共通で -d オプションが付き、さらに --entrypoint cat が付くので、 実行したいものはJenkinsfileに sh で直接コマンドを書く。 -d オプションなしはissueとして上がっている1

UID/GIDの取得

Jenkinsfileの書き方

stageの中に書く / 外部イメージを指定する場合

stage ('...') {
  agent {
    docker {
      image "..."
      args "..."
    }
  }
}

stageの中に書く / Dockerfileを指定する場合

stage ('...') {
  agent {
    dockerfile {
      dir "..."
      additionalBuildArgs "..."
      args "..."
    }
  }
}

複雑な環境の場合

標準のオプションを置き換える場合は、 Scripted Pipelineを使って自前で書いたほうが良さそうです。

以下のようなイメージで。

stage ('...') {
  steps {
    sh 'docker build .'
    script {
      docker.image("centos").withRun('-v $HOME/.m2:/root/.m2") {
        sh 'ls'
      }
    }
  }
}

公式サイト

マニュアル


ページトップへ戻る