Skip to content
Snippets Groups Projects
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()
        }
    }     
     
}