Docker-Jenkins-GitLab-Harbor自动化部署Spring单项目(二)
Gradle构建Spring单模块项目
构建Jenkins任务
添加Credentials
Http+username+password方式访问GitLab
创建任务
添加GitLab项目
配置Git分支,拉取GitLab对应分支的代码。
在Git源码管理部分,分支为空的话,触发器默认拉取任何有代码变动的分支。
增加GitLab触发器
配置“Build Triggers”(“构建触发”)。在“Build Triggers”下勾选“Build when a change is pushed to GitLab”复选框。
点击“Advanced”,注意以下选项:
GitLab Webhook URL: 设置的链接在后面的GitLab配置中会用到。
Enable GitLab triggers :默认打开代码提交,创建新的合并请求,让合并请求通过,添加注释等,也可以根据实际需求增加或减少。
Allowed branches :这里可以控制哪些分支的变更会触发该任务,支持所有分支/具体分支名称以及灵活的正则匹配方式。
Secret token :点击“Generate”按钮,会生成一个令牌,在后面的GitLab配置中会用到。
增加构建步骤
Harbor新建镜像仓库
增加构建后操作
Send files or execute commands over SSH,将打好的 Jar 包发送到目标服务器指定目录,Docker打包后推送到Harbor,并运行Docker镜像。
cd /usr/local/projects/
sudo sh deploy.sh
/usr/local/projects/ 下文件
Dockerfile
1 | # 该镜像需要依赖的基础镜像 |
deploy.sh
1 |
|
GitLab的WebHook配置
选择 Project -> Settings -> Integrations -> webhook
注意以下选项:
URL:设置为刚才Jenkins任务配置下的Webhook URL。
Secret Token:刚才Jenkins任务配置下的Secret Token。
Trigger:触发条件,使用默认条件即可。
测试GitLab WebHook
直接通过GitLab界面提供的Test功能测试配置是否成功。
这里的测试不会提交代码,但是会触发对应的Jenkins任务。
如果配置成功,会在界面上方显示“Hook executed successfully:HTTP 200”。
Jenkins任务执行
代码上传到GitLab
如果项目在联网环境中运行,添加网络仓库地址即可
build.gradle增加网络仓库地址
1 | repositories { |
如果项目在断网环境中运行,需要添加本地gradle仓库和maven仓库
存在gradle构建项目极小部分依赖maven仓库
使用gradle仓库通过环境变量的GRADLE_USER_HOME设置
使用maven仓库通过~/.m2/repository设置,root账户下为/root/.m2/repository,一般用户下为/home/xxx/.m2/repository
1 | repositories { |
代码上传触发Jenkins任务执行。
构建成功
项目位置
查看Docker容器
docker ps -a