![](/img/trans.png)
[英]How to pass docker container arguments when running the image in a Jenkinsfile
[英]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.