docker + jenkins搭建自己的前端持续集成平台

487 阅读5分钟

前言

想打造自己的前端项目持续集成平台吗?跟着我从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打造自己的静态服务器,请关注我,有后续更新!