前言
想打造自己的前端项目持续集成平台吗?跟着我从0开始搭建属于自己的多项目、多分支、多环境的Jenkins持续集成平台。文章有点长,耐心往下看相信你会有所收获!
前期准备
准备工具
- centos8 阿里云服务器一台
- xshell (win系统)
要用到linux命令
- uname
- yum
- mv
- wget
- systemctl
- docker
xshell 登录服务器
输入主机IP,点击连接,输入密码
确认是否可以安装 docker
Docker要求CentOS系统的内核版本高于3.10.通过uname -r命令查看你当前的内核版本。
[root@CentOS~]# uname -r
4.18.0-147.5.1.el8_1.x86_64
更改yum源为阿里云
备份旧源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载最新的源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
生成缓存
yum makecache
更新
yum update
安装docker
yum install -y yum-utils
添加docker源
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装docker
yum install docker-ce
更改docker镜像源
vim /etc/docker/daemon.json
加入阿里云源地址
{
"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"]
}
重新读取配置
systemctl daemon-reload
重启docker
systemctl restart docker
安装jenkins
下载jenkins镜像
docker pull jenkins
启动jenkins
由于jenkins是容器,所以要把容器内的配置文件映射到主机。 设置端口为9090并映射jenkins_home到宿主机/home/jenkins_home。
docker run -d --name jenkins -p 9090:8080 -v /home/jenkins_home:/var/jenkins_home jenkins
可以通过docker ps查看运行的容器。 (docker ps -a 显示所有容器,包括未运行的)
[root@CentOS home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ec6a4da6b83f jenkins "/bin/tini -- /usr/l…" About a minute ago Up About a minute 50000/tcp, 0.0.0.0:9090->8080/tcp jenkins
[root@CentOS home]#
docker logs 镜像名称查看启动日志
docker logs jenkins -f
Jenkins初始化
启动成功后输入 http://服务器ip:9090/
「如果无法访问,请检查一下防火墙端口是否开放,如果是云服务器还需要检查安全组设置」
首次启动jenkins需要输入密码,需要进入容器内获取密码。密码位于/var/jenkins_home/secrets/initialAdminPassword。
进入jenkins容器
docker exec -it jenkins /bin/bash
获取密码 cat /var/jenkins_home/secrets/initialAdminPassword
[root@CentOS jenkins_home]# docker exec -it jenkins /bin/bashroot@ec6a4da6b83f:/# cat /var/jenkins_home/secrets/initialAdminPassword68eed23ad39541949972468e4f2ce1fdroot@ec6a4da6b83f:/#
输入密码以后,安装需要的插件,在安装途中由于网络原因会出现有些插件安装失败,这个可以不用理会
设置jenkins的默认登录账号和密码
处理插件安装失败
进入jenkins的主页面右上角可能会出现一些报错信息,主要是提示jenkins 需要的某些插件没有安装,或者说jenkins版本太低了,插件无法使用这个时候我们需要先升级jenkins做一个升级。 选择自动升级 重新启动Jenkins即可完成升级。
docker restart jenkins
更新插件
更换源
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
- 替换完源以后点击提交。
- 然后进入插件管理页面将出错的插件重新安装。
- 及时更新插件。 需要安装的插件:
- Localization: Chinese (Simplified) 汉化包
- Publish Over SSH
- DingTalk 钉钉通知
- NodeJS Plugin
配置jenkins
全局工具配置git,node
git
进入容器内使用whereis git即可查询到git安装路径。
docker exec -it jenkins bash //进入容器
whereis git
git: /usr/bin/git /usr/share/man/man1/git.1.gz
node
根据自己需要安装node版本
系统配置
服务器配置
- Name 名称 - 构建的时候将会用到
- Hostname 服务器地址
- Username 用户名
- Remote Directory 远程目录 - 上传文件的目录 默认配置根目录即可/home/www。如果没有www目录需要自建 输入服务器password
配置完成以后点击Test Configuration按钮,如果配置正常会出现Success 反之出现错误信息,可以根据错误信息,调整配置参数。
钉钉
钉钉主要用于构建通知,在配置前需要在钉钉群内,添加自定义机器人。需开启钉钉智能群助手 钉钉配置完成后测试一下
自由风格的软件项目
点击新建任务
git 配置 我这里配置的是码云 prod 是变量 用于下边指定分支 前边配置全局工具node的名字用于下边NodeJs Installation 配置 构建选择shell
pwd
ls
node -v
npm -v
git --version
java -version
echo '构建的版本号:'${BUILD_NUMBER}
npm install -g yarn -registry=https://registry.npm.taobao.org
yarn -v
#--pure-lockfile 这个参数是在服务器install不生成yarn.lock,防止服务器和本地代码冲突
yarn install --pure-lockfile
yarn build
pwd
ls
echo '----- 以上的列出的文件是 jenkin 服务 workspace 中 目录下的文件-------'
构建后上传服务器
# 进入项目的文件夹 /home/www
echo '--- 1.进入项目的文件夹:---'
cd /home/www
pwd
# 打包压缩项目文件
echo '--- 2.打包压缩项目的文件:---'
# 自动创建webpre-copy文件夹,存在则创建失败。mkdir -p a/b/c 创建多级目录
mkdir /home/www/webpre-copy
tar -zcvf /home/www/webpre-copy/${JOB_NAME}-${BUILD_ID}.tar.gz *
# 查看压缩备份后的文件
cd /home/www/webpre-copy
echo '--- 3.下面是已经备份项目的版本:---'
ls
点击保存,打包后就可以在主机的/home/www/webpre 看到你打包后的文件了
多建几个任务进行分类
如果配合nginx把根目录指向/home/www就可以看到这样的页面了. 访问 http://xxxx/webpre
结尾
以上就是docker+jenkins打造多分、支多项目、多环境的简单配置,如果有兴趣了解docker+nginx打造自己的静态服务器,请关注我,有后续更新!