Jenkinsfile 1.39 KiB
node{
def app
def registryProject='http://localhost:8083/repository/RegistryDocker/'
//def image="${registryProject}:version-${env.BUILD_ID}"
//Clonage du projet gitlab gitlab
stage('Clone') {
checkout scm
}
//Scan hadolint pour detecter la mise en place des bonnes pratique
stage('Scan hadolint'){
sh 'docker run --rm -i hadolint/hadolint < Dockerfile > rapportHadolint || true'
}
//Build image docker
stage('Build image') {
app = docker.build ("debian:buster")
}
//Test de l'image pour voir si elle est correctement créée
stage('Test image') {
docker.image('debian:buster').withRun() { c ->
sh 'docker ps'
}
}
//Scan dockle (audit des bonnes pratiques du conteneur docker)
stage('Scan Dockle'){
sh 'dockle debian:buster > rapportDockle'
}
//Scan clair (permet de détecter les cve)
stage('Scan Clair'){
sh '''
./clair-scanner -t="Critical" --report="rapportClair" --ip="172.17.0.1" debian:buster
'''
}
//Push de l'image dans un registry nexus
stage('Push on repo nexus'){
docker.withRegistry(registryProject,'Jenkins-credential'){
app.push()
}
}
}