1

У меня возникли проблемы с запуском команды оболочки в контейнере Docker с декларативным конвейером Jenkins. используя плагин рабочего процесса докеров. Кажется, что он не может найти команду «cat», предлагая проблему с пути. Я ограничил задачу простой задачей (команда env shell) в очень простом изображении (альпийском) и проверил, что/bin/cat работает. В чем моя ошибка/непонимание?Плагин Workflow для докеров Jenkins выполняется без PATH

Обновлено: Я включаю всю команду, которую генерирует Дженкинс. Я не добавлял все эти дополнительные аргументы, по какой-то причине Дженкинс, кажется, вводит их вне моего контроля.

$ docker run -t -d -u 496:493 -w /jenkins/workspace/[email protected] -v /jenkins/workspace/[email protected]:/jenkins/workspace/[email protected]:rw -v /jenkins/workspace/[email protected]@tmp:/jenkins/workspace/[email protected]@tmp:rw -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** --entrypoint cat alpine 
[Pipeline] // withDockerContainer 
[Pipeline] } 
[Pipeline] // node 
[Pipeline] } 
[Pipeline] // stage 
[Pipeline] } 
[Pipeline] // withEnv 
[Pipeline] } 
[Pipeline] // withCredentials 
[Pipeline] } 
[Pipeline] // node 
[Pipeline] } 
[Pipeline] // withEnv 
[Pipeline] End of Pipeline 
java.io.IOException: Failed to run image 'alpine'. Error: docker: Error response from daemon: Container command 'cat' not found or does not exist.. 
at org.jenkinsci.plugins.docker.workflow.client.DockerClient.run(DockerClient.java:125) 

А вот мой этап трубопровода:

stage("test") { 
    agent { 
    docker { 
     image 'alpine' 
     label 'docker-enabled' 
    } 
    } 
    steps { 
    sh 'env' 
    } 
} 
+0

Если вы работаете в Linux, то каков результат 'cat/etc/issue'? – Avi

+0

попробуйте запустить 'echo $ PATH', чтобы узнать, что это за путь. Если путь неверно установлен. 'Докер запустить --name ALP -dt альпийской cat' и' Докер EXEC ALP ш -с "окр" 'дает мне: ' HOSTNAME = a2b6eeb0788a SHLVL = 1 HOME =/корень PATH = /USR/местные/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD =/ ' – Rik

+0

Это специфический отказ Jenkins. Кошка находится на пути выполнения, когда я запускаю из командной строки. Запрашиваемые выход - '$ Докер пробег -id --entrypoint кошка альпийской 3719b36a40ecc36eada4674def442b2140f22ed2aec030390acd2ef838763722 $ Докер Exec 3719 кот/и т.д./вопрос Добро пожаловать в Alpine Linux 3.4 ядра \ г на \ т (\ л)' –

ответ

0

Устранена обновлением до версии 1.10 Докер Pipeline плагин (от 1.9.1). Рабочий код:

pipeline { 
    agent none 
     stages { 
     stage('Example') { 
      agent { 
       docker { 
        label 'docker' 
        image 'alpine'      
       } 
      } 
      steps { 
       sh 'env' 
      } 
     } 
    } 
}