Я пытаюсь запустить образ Python в Jenkins, чтобы выполнить серию модульных тестов с pytest, но у меня странное поведение с Docker.
Мой конвейер Jenkinsfile -
agent {
docker { image 'python:3.6-jessie' }
}
stages {
stage('Run tests') {
steps {
withCredentials([
string(credentialsId: 'a-secret', variable: 'A_SECRET')
{
sh label: "Install dependencies", script: 'pip install -r requirements.txt'
sh label: 'Execute tests', script: "pytest mytests.py"
}
}
}
}
Однако, когда я запускаю конвейер, Docker, похоже, выполняет очень длинную инструкцию (со значительно большим количеством -e
переменных окружения, чем я определил как учетные данные?), За которым следует cat
.
Затем сборка просто зависает и никогда не завершается:
Jenkins does not seem to be running inside a container
$ docker run -t -d -u 996:994
-w /var/lib/jenkins/workspace/myproject
-v /var/lib/jenkins/workspace/myproject:/var/lib/jenkins/workspace/myproject:rw,z
-v /var/lib/jenkins/workspace/myproject@tmp:/var/lib/jenkins/workspace/myproject@tmp:rw,z
-e ******** -e ******** python:3.6-jessie cat
Когда я запускаю SSH в свой экземпляр и запускаю docker ps
, я вижу
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
240d00459d92 python:3.6-jessie "cat" About a minute ago Up About a minute kind_wright
Почему Дженкинс работает cat
?Почему Дженкинс говорит, что я не бегаю внутри контейнера, когда он явно создал контейнер для меня?И самое главное, почему мои pip install -r requirements
и другие шаги не выполняются?