3

を介して、Jenkins 宣言型パイプラインと Docker-for-Windows エージェントを使用して CI ワークフローをセットアップしていますDockerfile

注: 残念ながら、Windows バイナリを実行する必要があるため、Linux ベースの Docker デーモンを使用することは現在のところ解決策ではありません。

セットアップ: Jenkins マスターは、Docker を介して Linux 16.04 で実行されます。Jenkinsビルドエージェントは

  • Windows 10 エンタープライズ 1709 (16299.551)
  • Docker-for-Windows 17.12.0-ce

Docker 18.x では、Windows コンテナーを使用しようとすると頭が痛くなったので、17.x にロールバックしました。Jenkins と nohup がパス上にない状態で実行しようとすると、まだいくつかの問題がありましたが、Git バイナリを Windows 検索パスに追加することで解決しました(別の参照)。現在の問題が関連していると思われます。

コード:Jenkinsfileを初期化し、単純な hello-world-printout を内部で実行しようとしています。

/ジェンキンスファイル

pipeline {
  agent none
  stages {
    stage('Docker Test') {
      agent {
        dockerfile {
          filename 'Dockerfile'
          label 'windocker'
        }
      }
      steps {
        println 'Hello, World!'
      }
    }
  }
}

/Dockerfile

FROM python:3.7-windowsservercore
RUN python -m pip install --upgrade pip

基本的に、これは単に "Hello, World!" を出力するクリーンなイメージである必要があります。しかし、ジェンキンスでは失敗します!

ログからの出力:

[C:\jenkins\workspace\dockerfilecd4c215a] Running shell script
+ docker build -t cbe5e0bb1fa45f7ec37a2b15566f84aa9bd08f5d -f Dockerfile .
Sending build context to Docker daemon  337.4kB

Step 1/2 : FROM python:3.7-windowsservercore
 ---> 340689b75c39
Step 2/2 : RUN python -m pip install --upgrade pip
 ---> Using cache
 ---> a93f446a877f
Successfully built a93f446a877f
Successfully tagged cbe5e0bb1fa45f7ec37a2b15566f84aa9bd08f5d:latest
[C:\jenkins\workspace\dockerfilecd4c215a] Running shell script
+ docker inspect -f . cbe5e0bb1fa45f7ec37a2b15566f84aa9bd08f5d
.
Cannot run program "id": CreateProcess error=2, The system cannot find the file specified
4

1 に答える 1