我是Jenkins的新手,刚开始学习它,我正尝试在后期构建部分执行两个不同的脚本,一个在master上,另一个在docker容器内。我无法将agent
或docker
标签放置在什么地方?后期构建的结构与通常的阶段有很大的不同。
下面是我剥离的Jenkinsfile,toolbox
只是我使用与构建步骤相关的工具构建的docker映像的任意名称。我的Jenkins服务器已安装在主机上。我在EC2上使用Bitnami AMI。
任何指针或好的文章对此进行解释都将很有帮助。谢谢。
注意:我相信我的Jenkinsfile还有其他问题,我将在此发布一个单独的问题
pipeline {
agent {
node {
label 'master'
}
}
stages {
stage('Build') {
agent any
steps {
sh '''
docker-compose build
'''
}
}
stage('Up') {
agent any
steps {
sh '''
docker-compose up -d
'''
}
}
stage('Test') {
agent {
docker {
image 'toolbox'
args '-u 0 --net="host"'
}
}
steps {
sh '''
sleep 10
curl ....
'''
}
}
}
post {
always {
node('master') {
script {
timeout(time: 10, unit: 'MINUTES') {
input(id: "Stop Docker", message: "Stop Docker?", ok: 'Stop')
}
}
sh '''
docker-compose rm -fs
'''
# Issue here, no issue with linter though
agent {
#docker { # linter complaint here
image 'toolbox'
#}
}
withCredentials([usernamePassword(credentialsId: 'AWS_TOKEN', passwordVariable: 'TOKEN', usernameVariable: 'KEY')]) {
sh '''
aws ...
'''
}
}
}
}
}