Дженкинс в докере не может вытащить изображение - PullRequest
0 голосов
/ 16 октября 2019

Я установил виртуальную коробку oracle и панель инструментов докера на свой ноутбук с Windows. Я создал контейнер Дженкинс внутри докера. Дженкинс работает хорошо. Но когда я создал образец конвейера, он не работает.

Ниже приведена версия докера:

Client:
 Version:           18.09.3
 API version:       1.39
 Go version:        go1.12
 Git commit:        774a1f4eee
 Built:             Mon Mar  4 10:36:44 2019
 OS/Arch:           windows/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.1
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.5
  Git commit:       74b1e89e8a
  Built:            Thu Jul 25 21:27:55 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

Ниже приводится конвейер:

pipeline {

   agent {
        docker { image 'hello-world'  }
    }

    stages {
        stage('Test') {
            steps {
                sh 'docker version'
            }
        }
    }
}

Ниже приводится ошибка:

java.io.IOException: Failed to run image 'hello-world'. Error: docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"cat\": executable file not found in $PATH": unknown.
    at org.jenkinsci.plugins.docker.workflow.client.DockerClient.run(DockerClient.java:138)
    at org.jenkinsci.plugins.docker.workflow.WithContainerStep$Execution.start(WithContainerStep.java:199)
    at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:286)
    at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:179)
    at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:122)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:20)
    at org.jenkinsci.plugins.docker.workflow.Docker$Image.inside(Docker.groovy:126)
    at org.jenkinsci.plugins.docker.workflow.Docker.node(Docker.groovy:66)
    at org.jenkinsci.plugins.docker.workflow.Docker$Image.inside(Docker.groovy:114)
    at 

1 Ответ

0 голосов
/ 16 октября 2019

Фактическая ошибка:

java.io.IOException: Failed to run image 'hello-world'. Error: docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"cat\": executable file not found in $PATH": unknown.

У вас нет docker в вашем образе hello-world, и docker version предполагает запуск внутри контейнера.

Вторая вещь

steps {
                sh 'echo hello form container'
      }

Запуск bash или sh не будет работать hello-word контейнер, так как этот контейнер основан с нуля, и нет bash или sh. это просто контейнер, выполняющий файл приветствия.

Dockerfile-helloworld

Измените конвейер, а также базовый образ, если вы просто хотите сказать привет Docker.

pipeline {

   agent {
        docker { image 'alpine'  }
    }

    stages {
        stage('Test') {
            steps {
                sh 'echo hello form container'
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...