一看就懂!Docker + Jenkins + GitLab + Nginx 整合自动化部署

以下步骤也是我第一次边学习边记录进行,可能会出现前后不对应情况,应该自己也走了几次岔路。

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漏洞欢迎留言。 

发布了77 篇原创文章 · 获赞 62 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/weixin_42236404/article/details/104702253