以下步骤也是我第一次边学习边记录进行,可能会出现前后不对应情况,应该自己也走了几次岔路。
1.安装docker(略)
2.安装nginx(这里用的是非docker版,安装过程略。公司要求~)
3.安装Jenkins
3.1拉取镜像
docker pull jenkins/jenkins
注意:通过dockers search jenkins发现第一个被显示为官方构建的镜像。但安装完毕后,发现许多插件都报无法安装。
我从官方仓库的web界面去搜索,才发现镜像 jenkins 的介绍里,说该镜像已经被deprecated了,官方建议使用 jenkins/jenins
3.2配置jenkins相关目录,并给予对应的权限
mkdir -p /var/jenkins_home
chown -R 1000 /var/jenkins_home
3.3安装容器
docker run -p 8080:8080 -p 50000:50000 --name jenkins -v /var/jenkins_home:/var/jenkins_home jenkins/jenkins
这里需要注意 -v /var/jenkins_home:/var/jenkins_home 意思是将docker容器里的/var/jenkins_home挂载到外面/var/jenkins_home路径,即docker容器内的/var/jenkins_home下添加一个aa.txt,外部/var/jenkins_home下也会有aa.txt。类似于虚拟路径概念。
这里不建议你修改这个路径,否则后患无穷。
3.4留意控制台输出解锁密码,记下来
3.5打开浏览器输入ip:8080访问jenkins解锁界面输入上面的密码
3.6选择安装推荐插件
3.7等待下载插件(这里要下载很久很久,而且会因为网络原因失败,但不要担心,后面可以按需安装。如果不是新手可以选择自定义安装插件,选择所需插件即可)
3.8安装完成后新建用户密码,也可以用admin账户
然后jenkins就安装成功了
3.9安装插件 看图:
安装插件前可以进入高级-》升级站点更换镜像
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json
安装 Git plugin、GitLab 即可。
4.编写本地静态文件
这里我快速随便写了一些文件
5.创建GitLab仓库
5.1创建仓库
6.pull本地项目到GitLab上(懂得可以略过)
6.1切换至项目目录
6.2打开GitBash窗口
6.3输入 git init 初始化git项目
目录下会多一个.git
6.4输入 git add . (注意有一个小数点)把项目下所有文件添加到git版本控制
文件会多个红色感叹号,忘记截图了
6.5输入 git commit -m "注释",提交到本地仓库
可以看见文件从红色感叹号变成绿勾,证明已经上传到本地仓库。
6.6复制下GitLab上的Clone with HTTP链接
6.7执行命令git pull https://gitlab.com/xxxx/xxx.git master --allow-unrelated-histories,注意--后面表示允许不相干的两个仓库合并,因为我们之前两个仓库是完全独立的,所以直接是没办法pull下来,需要加上后面参数才行
6.8接着提示你输入你的GitLab的用户名密码
6.9 执行命令 git remote add origin https://gitlab.com/xxxx/xxx.git 关连本地仓库和远程仓库
6.10 执行命令 git push -u origin master 将项目push上远程仓库
7.jenkins新建项目
7.1 配置源码管理
输入Clone的URL 红色字不要慌,点击添加凭证
输入gitlab的用户名密码
添加后下拉框选择,红色警告就消失了。
7.2 构建触发器配置
记录下url以及选择 On push to source or target branch
然后点击高级-》Generate生成Secret token,记下token
保存。
8. 配置gitlab hook
来到GitLab中打开 Setting-》Integrations
输入URL和token(就是上一步说要记下来的),然后点击Add webhook.
9.测试
在GitLab刚刚的页面下有个Test按钮,点击Push event。
如果成功将会刷新出下面这个提示
回到jenkins页面可以看到构建成功。
点击去可以查看控制台信息(略)
我们可以使用命令 docker exec -it jenkins bash 进入jenkins容器,cd /var/jenkins_home/workspace即可看到我们上传的代码,随后exit退出容器,进入/var/jenkins_home/workspace下我们也可以看到代码。但是并没有完,我们还需要把文件复制到nginx目录下进行访问。
10.复制到nginx
这里公司要求先建一个静态资源文件服务器(emmm我觉得没必要),这都不是关键。关键是jenkins设置中还有一个很好用的东西,在构建时执行shell,才是真正实现自动化测试部署的利器。
打开Jenkins 项目设置,在构建模块,构建shell,在下面即可输入自己的shell指令。
例如显示当前目录
最终在构建时候就会执行pwd命令
同时自动拉取代码。
这里需要注意的是一开始我写的是index.html ,会直接显示页面而不是目录,因此需要改成其他名称。
至此基础的搭建整合就完成了。如有什么bug漏洞欢迎留言。