持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情
一. 安装docker
- 自动化安装docker
curl -fsSL get.docker.com | bash -s docker --mirror Aliyun
- 启动docker
sudo systemctl start docker
二、安装jenkins
- 拉取jenkins镜像,这步比较慢。
docker pull jenkins/jenkins:lts
- 目录权限
chown -R 1000 /mydata/jenkins_home
- 运行jenkins
docker run -di --name=jenkins -p 8080:8080 -v /mydata/jenkins_home/:/var/jenkins_home jenkins/jenkins:lts
备注:映射java、maven等目录
docker run -v /usr/local/apache-maven-3.8.4:/usr/local/apache-maven-3.8.4 -v /usr/local/java:/usr/local/java -v /mydata/jenkins_home/:/var/jenkins_home --name myjenkins -p 8080:8080 -d jenkins/jenkins:lts
- 解锁jenkins
查看密码命令:
cat /mydata/jenkins_home/secrets/initialAdminPassword
跟网站上的路径不一样,因为docker映射到了/mydata/jenkins_home路径上
- 安装推荐的插件
点击安装推荐的插件即可。
- 插件安装完成后创建一个账号。
- 点以管理员账号继续,后面有一个输入地址,保持不变点保存并完成
- 全局配置
-
配置JDK,选择自动安装。需要输入oracle账号密码。
-
配置maven
- 安装SSH插件
- 配置系统管理
在系统配置里找到SSH,点添加
密钥那里点添加,添加服务器的密钥即可,id和描述随便输
- 写脚本
mkdir -p /usr/local/jenkins
cd /usr/local/jenkins/
vim jenkins.sh
#! /usr/bin/env bash
app_name='jenkinsdemo'
docker stop {app_name}
echo '-------stop container--------'
docker rm ${app_name}
echo '-------rm container----------'
docker run -di --name=${app_name} -p 7070:7070 test/${app_name}:1.0-SNAPSHOT
echo '-------start container-------'
chmod +x ./jenkins.sh
- 新建任务
输入任务名字,选FreeStyle project(自由风格的项目)
然后选择源码管理,填入源码仓库地址
然后在构建里选择调用顶层maven目标
然后在添加一个构建,选Execute shell script on remote host using ssh,目的是为了执行刚才我们写的jenkins.sh脚本
保存并退出
- 返回任务列表开始构建
备注:因为是通过jenkins安装的maven,拉取代码是从默认的中央仓库拉取的,会比较慢。可以改为从阿里的仓库拉取
cd /mydata/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.2/conf
vim settings.xml
#在mirrors标签里加入
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>