繁体   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