先安装jenkins。

注意

官方的docker仓库是jenkins/jenkins!

安装插件。较好的源:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json,插件管理中点击高级进行配置。

必备插件:

  • Publish Over SSH
  • Git
  • Credentials
  • Localization: Chinese (Simplified)

在全局工具配置中配置JDKMAVEN路径。

在系统配置中配置MAVEN_BIN的路径,如:/path/bin。并修改maven的settings.xml文件,修改镜像源、本地仓库位置(和私服配置,若有)。同时配置Publish Over SSH的相关设置。新增SSH Servers,Name随意,Hostname写入服务器IP,Username写入ssh的用户名,Remote Directory填入远程服务器项目的部署位置。点击高级,勾选Use password authentication, or use a different key,然后填入ssh用户名对应的密码。Port视情况而定,Timeout默认5分钟,项目较大建议同时调大此数值,单位毫秒。(此配置依赖Publish Over SSH插件。)

在凭据管理中加入git的账号信息。(此项依赖Credentials插件,若使用密钥登录,则使用ssh-keygen -t rsa,一路回车进行生成,公钥写入Credentials管理中,私钥写入GitLab的设置中,GitLab需要root权限进入设置进行配置)

至此,可以开始具体项目的构建。

新增任务,加入自由风格的,取个名字,最好和Gitlab项目的名称相同。点击确定。

源码管理,选择Git,填写Git仓库地址和选择对应凭据。Additional Behaviours项填写master。(master看情况,写入要部署的分支名即可)

构建步骤,增加执行Shell,写入${MAVEN_BIN}/mvn clean package -Dmaven.skip.test=true。这里的变量来自第四步的系统配置。这里只进行了打包,具体私服的配置视情况拓展。

再加入构建步骤,选择Send files or execute commands over SSH,Source files写入jar包的位置,默认是由target路径的(编写Dockerfile同样需要注意此问题),target/demo-0.0.1-SNAPSHOT.jar。然后点击Add Transfer Set,再增加一个步骤,Source files写入Dockerfile,Exec command写入

cd ${TARGET_PATH} docker build -t cicd-test . docker image prune -f

TARGET_PATH同样来自第四步的配置,代表项目的部署位置。(注意:此文件路径需要提前建好!)

然后build项目,之后删除所有虚悬镜像。再次点击Add Transfer Set,用于传输docker-compose.yml,Source files写入docker-compose.yml,Exec command写入

cd ${TARGET_PATH} docker-compose down docker-compose up -d

还是进入项目部署路径,先停掉之前的部署,再启动新构建的程序。(注意:所有Exec command中,必须一条命令一行,不要写在同一行然后用&&链接)

# To Be Continued!😎

Last Updated: 4/7/2021, 11:50:51 PM