簡體   English   中英

如何使用 Jenkinsfile 將 Docker 映像部署到某個 Docker 容器?

[英]How do i deploy a Docker image to a certain Docker container with a Jenkinsfile?

我有一個 Jenkinsfile,它構建並將 Angular 映像部署到 Docker 並將其存儲在那里 - 我在這里使用 Portainer 作為 UI。 現在我想向我的 Jenkinsfile 添加一個部署階段,它將圖像部署到某個容器。

我嘗試了互聯網上的幾種解決方案,但沒有一個對我有用。

這是我的詹金斯文件:

    pipeline {

agent any
tools { 
    nodejs 'NodeJS 16.9.1'  
    dockerTool 'docker-19.03.9'  
}

environment {
    IMAGE = 'name-angular'
    VERSION = 'test'
}
stages {
    stage('Build image') {
        steps {
            script {
                sh 'npm install'
                sh 'npm run buildProd'
                IMAGE = readMavenPom().getArtifactId()
                VERSION = readMavenPom().getVersion()
                echo "Building image ${IMAGE}:${VERSION}..."
                dockerImage = docker.build("name:latest")
            }
        }
    }
    
    stage('Deploy image') {
        steps {
            echo 'Deploying image...'
          
        }
    }
    
    stage('Clean up') {
        steps {
            echo 'Cleaning up...'
        }
    }
}

}

如您所見,我的部署階段完全是空的,因為我什至不知道如何開始。

我認為dockerImage變量不會轉移到其他階段,所以你可以直接調用docker命令。 以下管道是一個示例,因此您應該根據自己的目的進行調整。

pipeline {

    agent any

    tools { 
        nodejs 'NodeJS 16.9.1'  
        dockerTool 'docker-19.03.9'  
    }

    environment {
        IMAGE = readMavenPom().getArtifactId()
        VERSION = readMavenPom().getVersion()
    }

    stages {
        stage('Build image') {
            steps {
                sh 'npm install'
                sh 'npm run buildProd'

                echo "Building image ${IMAGE}:${VERSION}..."
                sh 'docker build -t ${IMAGE}:${VERSION} .'
            }
        }
  
        stage('Deploy image') {
            steps {
                echo 'Deploying image...'
                sh 'docker push ${IMAGE}:${VERSION}'
            }
        }
    
    post {
        always {
            sh 'docker rmi ${IMAGE}:${VERSION}'
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM