Ich versuche, meine Pipeline-Tests innerhalb (oder gegen) eines Docker-Containers auszuführen, den ich habe. Ich habe ursprünglich eine Docker-Datei verwendet, um den Container zu erstellen, aber die Tests würden immer gegen den jenkins-Knoten laufen, der den Job ausführt. Ich habe meine jenkinsfile geändert, um etwas Standard zu verwenden, aber immer noch nicht das, was ich erwarte.Jenkins-Pipeline-Tests im Docker-Container ausführen
Was bin ich schließlich zu erreichen versuchen, ist:
- einen Docker Container Werfen Sie oben
- mein Quellcode
- Skript ausführen meine Python auf dem Behälter in den Behälter Kopieren
Ich habe 1 & 2 funktioniert, aber nicht 3. Für jetzt würde ich mich freuen, wenn ich nur Tests gegen einen Container ausführen könnte, weshalb ich die Jenkinsfile so modifiziert habe, dass sie einfacher ist.
Mein Jenkinsfile:
pipeline {
agent {
docker { image 'node:7-alpine' }
}
stages {
stage('Test') {
steps {
sh 'pwd'
sh 'ls -al'
}
}
}
}
Als ich docker run node:7-alpine pwd
laufen, docker run node:7-alpine ls -al
lokal, erhalte ich folgendes:
/
und
bin
dev
etc
home
lib
linuxrc
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
Aber Jenkins erhalte ich:
[test_job] Running shell script
+ pwd
/srv/jenkins/workspace/test_job
und
[test_job] Running shell script
+ ls -al
total 36
drwxr-x--- 4 5003 5003 4096 Aug 29 20:44 .
drwxr-xr-x 4 root root 4096 Aug 29 20:44 ..
drwxr-x--- 8 5003 5003 4096 Aug 29 20:44 .git
-rw-r----- 1 5003 5003 1184 Aug 29 19:24 .gitignore
-rw-r----- 1 5003 5003 802 Aug 29 19:47 Dockerfile
-rw-r----- 1 5003 5003 247 Aug 29 20:44 Jenkinsfile
-rw-r----- 1 5003 5003 417 Aug 29 20:24 OriginalJenkinsfile
-rw-r----- 1 5003 5003 2534 Aug 29 19:24 README.md
drwxr-x--- 5 5003 5003 4096 Aug 29 19:24 framework
ich die Docker Pipeline-Plugin bin mit, ist mein Code tatsächlich das erste Beispiel hier erwähnt: https://jenkins.io/doc/book/pipeline/docker/- aber die Testschritte funktionieren nicht wie beschrieben. – cdm
Schauen Sie sich meine bearbeitete Antwort an. Sie erwarten, dass das Stammverzeichnis des Andockcontainers ist. Aber Sie listen tatsächlich den Inhalt eines eingehängten Verzeichnisses auf. Versuche 'ls' – herm