Jenkins是一个流行的持续集成(Continuous Integration,CI)工具。
Jenkins 创建任务
选择"流水线"类型,该类型的优点是定制化程度非常高
(可选)添加"参数化构建"
配置仓库选项(ssh连接、分支)和凭据,凭据就是登录的通行证,类似username、password
如设置了参数化构建,此处点击:进行构建
gitlab配置
jenkins运行在jenkins服务器上,你指定的代码托管平台的jenkinsfile中的agent基本是其他远程服务器,所以需要在远程服务器对应的用户下配置ssh免登录到该仓库。
大致步骤:
仓库中jenkins文件是cross_build.jenkins。文件编写规则见:https://www.jenkins.io/zh/doc/book/pipeline/syntax/
cross_build.jenkins内容为:做过脱敏处理,根据需要自行编写jenkinsfile
groovy
pipeline {
agent {
label "28"
}
stages {
stage('Rebuild Image on .xx Server') {
steps {
script {
def timestamp = sh([script: 'date +%s', returnStdout: true]).trim()
//def timestamp = sh(script: 'date +%s', returnStdout: true).trim()
sh '''
pwd
cd /public/xxx/xxx/
sudo docker build -f Dockerfile -t name:tag1.1 . # 以后需要变量替换
sudo docker save -o mcross-${timestamp}.tar nova:nmediacross1.1 # 以后需要变量替换
sudo mv mcross-${timestamp}.tar ./image/
sudo docker rmi name:tag1.1
'''
echo "build OK!"
}
}
}
}
}
脚本功能是在288服务器创建并本地化一个docker镜像。
需要注意的是在服务器中登录的是jenkins用户(是否配置),该jenkins用户要配置到gitlab托管明天的ssh免登录。配置ssh免登录的教程很多,此处省略。
配置完毕后,在jenkins中点击Build
最终,会看到 SUCCESS