docker中的jenkins之流水线构建项目
1、用node这种方式(因为我用pipeline方式一直不执行,不知道为什么)
2、创建项目
创建两个参数,一个是宿主端口号,一个是docker中的端口号
3、使用git项目中的Jenkinsfile
4、编写脚本
node {
stage('拉取git代码') {
git credentialsId: 'root', url: 'https://gitxxx‘
}
stage('maven构建') {
sh '/var/jenkins_home/apache-maven-3.9.0/bin/mvn clean package -DskipTests'
}
stage('sonar分析') {
sh '/var/jenkins_home/tools/hudson.plugins.sonar.SonarRunnerInstallation/sonarQube/bin/sonar-scanner -Dsonar.source=./ -Dsonar.projectname=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME} -Dsonar.java.binaries=./target/ -Dsonar.login=924cfb420a2dbefc9bbbbba887ceb4176b0e859f -Dsonar.host.url=http://docker.for.mac.host.internal:9000'
}
stage('docker构建加部署') {
sh ''' docker kill ${JOB_NAME} || true
docker rm ${JOB_NAME} || true
docker rmi ${JOB_NAME} || true
docker build -t ${JOB_NAME} /var/jenkins_home/workspace/test
docker run -d -p ${container_port}:${host_port} --name ${JOB_NAME} ${JOB_NAME}:latest'''
}
}
其中 Dsonar.host.url=http://docker.for.mac.host.internal:9000’
主要是docker中的jenkins访问docker中的sonarQube,详情可以看我另外推文:https://blog.csdn.net/weixin_48319193/article/details/132124664?spm=1001.2014.3001.5501