广告
返回顶部
首页 > 资讯 > 服务器 >jenkins+gitlab+nginx部署前端应用实现
  • 881
分享到

jenkins+gitlab+nginx部署前端应用实现

2024-04-02 19:04:59 881人浏览 薄情痞子
摘要

目录相关依赖安装 Docker docker安装jenkinsdocker 安装 Nginx 小结配置 1. 安装 gitlab 相关插件 2. 首页->系统管理->系统

相关依赖安装

docker

由于国内安装太慢,所以可以使用 https://docs.docker.com/desktop/ 进行加速下载。
具体的下载过程就不再阐述。
镜像源:"Http://hub-mirror.c.163.com"

docker安装jenkins


# 拉取jenkins镜像
docker pull jenkins/jenkins

# 在后台运行一个 名为 jk,对外端口号为3080,链接数据卷为 ~/docker/jenkins 的服务

docker run -d --name jk -p 3080:8080 -v ~/docker/jenkins:/var/jenkins_home jenkins/jenkins

命令执行完成后,即可启动一个端口号为 3080 的http服务,打开浏览器,

  • 输入 http://localhost:3080/ ,等待初始化完成后(可能会比较漫长),此时需要管理员密码,cat ~/docker/jenkins/secrets/initialAdminPassWord 即可获取管理员密码。
  • 再下一步就是安装插件了,建议第一个选项,推荐的插件(这个安装也会比较慢,耐心等待)
  • 创建第一个管理员账户

docker安装gitlab


docker pull gitlab/gitlab-ce

docker run -d --name gitlab -p 443:443 -p 9001:80 -p 222:22 -v ~/docker/gl/config:/etc/gitlab:Z -v ~/docker/gl/logs:/var/logs/gitlab:Z -v ~/docker/gl/data:/var/opt/gitlab:Z gitlab/gitlab-ce

  • 初始化过程需要的时间可能会比较长,运行 docker logs -f gitlab可查看进度。
  • 输入 http://localhost:9001,首次进入会输入密码,待完成后输入用户名密码即可进入(默认的用户名为root)
  • 设置 https 和 ssh 方式克隆项目的地址。

# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.1.2:9001'

# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.1.2'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口

# nginx 监听80端口,否则默认会使用 external_url 的端口号,导致端口映射不成功
nginx['listen_port'] = 80
:wq #保存配置文件并退出,重启容器

如果 ssh 方式不成功,多半是因为 服务端的 key文件权限不正确。docker exec -it gitlab sh进入容器,查看 /etc/gitlab目录下的 ssh_host_ecdsa_key、ssh_host_ed25519_key、ssh_host_rsa_key 3个文件的用户名和群组是否为 git(chown 修改 所属用户,chgrp修改所属群组),文件权限是否为600(chmod命令可修改).

docker 安装 nginx


docker pull nginx
docker run -d --name nginx -p 80:80 -v ~/nginx/html:/usr/share/nginx/html nginx

小结

  • localhost:3080,访问jenkins(应运行于用于构建的服务器
  • localhost:9001,访问gitlab(应运行于放置源码的服务器)
  • localhost, 访问nginx(应运行于服务器)

配置

1. 安装 gitlab 相关插件

首页->系统管理->插件管理

然后 切换到 可选插件,搜索gitlab,选中 gitlab plugin(我已经安装了,所以此处没有展示),然后选中左下角的按钮,等待安装完成

2. 首页->系统管理->系统配置

Credentials 那里,添加的时候必须是 GitLabapi token,

GitLabAPI token 的获取方式如下图,生成的token刷新后就会隐藏,从而保证安全性。

配置填写完成以后,最好点击一下 test connection 按钮,确保配置填写正确。

3. 新建一个 job

4. 输入任务名称,并选择自由风格

5. 配置相关构建选项

1. General 配置
选中之前系统配置里面填写的选项即可,如果不选的话,构建的状态将无法回传到 gitlab

2. 源码管理

URL只能 http 格式的,所以下方的 Credentials 就需要使用username with password,选错的话将无法拉取代码。

下方的配置,表示只在 master 和 以 ci 开头的分支进行构建。具体的规则可点击右方的问号自行了解。

3. 构建触发器
勾选 Build when a change is pushed to GitLab.,右侧有适用于 gitlab 的WEBhook URL, 下方则是一些触发构建的时机选项(需要和 gitlab 那边的配置互相配合)。

jenkins 插件提供的 webhooj URL 是无法直接使用的,因为 jenkins 是需要登录的,对外提供的API也需要登录,否则就会返回 HTTP 401, 好在这种登录用HTTP基本认证就可以搞定。
点击 用户名 -> 设置 -> API Token -> 添加新Token -> 输入名称 -> 生成,然后复制该 Token,与之前的 webhook URL拼接即可。拼接规则为 <scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>。最终即可得到 http://ma1:11d4aca0aa206fc89d703879749fa7@192.168.1.2:3080/project/gl

此时可以先保存一下。然后去 gitlab 进行配置。

4. gitlab 配置 webhook URL
gitlab默认是不允许使用 本机URL的,所以要么使用公网域名,要么修改gitlab的隐私设置(如下图所示)

随后打开需要部署的项目 -> settings -> webhooks,填入上一步拼接URL,选择对应的事件,点击 Add即可。添加成功以后,可以点击 Test 测试一下 hooks 是否畅通()。

5. 构建环境
前端构建免不了要使用 node,所以这里一定要勾选 Provide Node & npm bin/ folder to PATH(如果没有的话,就去插件中心安装)

6. 构建

去插件中心安装一个名为 Publish Over SSH 的插件,主要是用于将生成的文件发送到远程服务器。

需要在 -> 系统管理 -> 系统配置中,进行该插件的配置。

2.构建tab,增加构建步骤,选择执行shell
gl替换为对应的项目名即可


# 删除之前的文件
rm -rf /tmp/html.tar.gz

# 运行测试
npm run test
# npm构建,打包脚本
npm run bd

# 切换到该工程目录
cd /var/jenkins_home/workspace/gl
# 将目标文件夹打包为 压缩文件
tar -zcvf /tmp/html.tar.gz --exclude .git -C ./dist .
# 一定要把压缩文件放到工程目录下,所以 publish over ssh无法访问
mv /tmp/html.tar.gz ./

构建tab,增加构建步骤,选择Send files or execute commonads over SSH


# 先删除/tmp/html,再新建。防止报错
rm -rf /tmp/html
mkdir /tmp/html

# 将压缩文件解压到 /tmp/html,然后删除压缩文件
tar -xvf ~/html/html.tar.gz -C /tmp/html
rm -rf  ~/html/html.tar.gz

# 将解压出来的文件,复制到 ~/nginx/html(之前docker nginx映射的本地路径)
cd /tmp/html
cp -R /tmp/html/* ~/nginx/html

7. 构建后步骤
点击 增加构建后操作步骤,选择Publish build status to Gitlab,这样jenkins构建完成后,在 gitlab 的 CI/CD 也能看到此次构建的状态。

6. 推送代码,触发构建
推送代码后,如果顺利的话,就会在这里看到构建历史,否则检查配置即可。

7. 浏览网站

推送代码后,只是静态文件部署,所以nginx不需要重启即可看到新内容。

总结

  • 推送代码时,gitlab 通过 webhook URL 通知 jenkins
  • jenkins 收到 POST请求后,触发构建,包括测试打包等,完成后发送文件到远程服务器,并执行相应命令,如解压缩文件、复制到nginx相关目录等。如果是 nodejs 应用,还需要 执行 node脚本
  • 远程服务器需提前安装好 docker 和 nginx 容器,并运行 nginx 服务于后台。
  • 如果需要 nodejs + nginx,可以使用 docker-compose简化命令运行,然后在 publish over ssh的exec command加入对应命令即可。

到此这篇关于jenkins+gitlab+nginx部署前端应用实现的文章就介绍到这了,更多相关jenkins gitlab nginx 部署 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: jenkins+gitlab+nginx部署前端应用实现

本文链接: https://www.lsjlt.com/news/126119.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • jenkins+gitlab+nginx部署前端应用实现
    目录相关依赖安装 docker docker安装jenkinsdocker 安装 nginx 小结配置 1. 安装 gitlab 相关插件 2. 首页->系统管理->系统...
    99+
    2022-11-12
  • jenkins+gitlab+nginx部署前端应用实现的示例分析
    这篇文章将为大家详细讲解有关jenkins+gitlab+nginx部署前端应用实现的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。相关依赖安装docker由于国内安装太慢,所以可以使用 http...
    99+
    2023-06-15
  • 基于Docker、Nginx和Jenkins实现前端自动化部署
    目录前期准备部署目标Dcoker环境的搭建连接云服务器安装Docker环境Docker安装Docker ComposeDocker安装Nginx和Jenkins服务安装Nginx和J...
    99+
    2022-11-12
  • 基于Docker、Nginx和Jenkins如何实现前端自动化部署
    这篇文章给大家分享的是有关基于Docker、Nginx和Jenkins如何实现前端自动化部署的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前期准备基于CentOS 7系统云服务器一台。基于Vue-CLI的项目部署...
    99+
    2023-06-20
  • jenkins+docker+nginx+nodejs持续集成部署vue前端项目
    目录前提:思路:步骤:配置nodejs工具git代码文件目录如下Dockerfile的文件内容nginx.conf主配置文件的内容最近比较闲,尝试了一下docker部署业务测试环境的...
    99+
    2022-11-13
  • Docker+Jenkins+Gitlab+Django应用部署的方法
    本篇内容介绍了“Docker+Jenkins+Gitlab+Django应用部署的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大...
    99+
    2022-10-19
  • GitLab+Jenkins+Maven+Tomcat 实现自动集成、打包、部署
    目录一、安装 Tomcat 服务二、在 Jenkins 上安装 Maven1.安装 Maven2.创建 Jenkins 任务3.验证一、安装 Tomcat 服务 1.安装 JDK J...
    99+
    2022-11-12
  • Docker+Nginx打包部署前后端分离怎么实现
    这篇文章主要介绍“Docker+Nginx打包部署前后端分离怎么实现”,在日常操作中,相信很多人在Docker+Nginx打包部署前后端分离怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Docker+...
    99+
    2023-07-04
  • Docker+Nginx打包部署前后端分离步骤实现
    目录问题描述项目打包前端项目打包修改vue.config.js文件router配置中添加base属性打包前端项目后端项目打包将前端和后端的打包文件上传到服务器nginx反向代理配置后...
    99+
    2023-01-08
    Docker Nginx前后端分离 nginx前后端分离
  • Nginx基本使用以及部署前端项目
    前言 最近学习了一下Nginx,整理了一个博客,主要参考的是狂神说的b站视频教程,文章链接如下:狂神说Nginx快速入门 一、下载、启动Nginx 1.下载Nginx 到Nginx官方选择自己电脑适...
    99+
    2023-09-01
    nginx 前端
  • Jenkins集成Gitlab实现自动化部署的全过程记录
    目录一、环境准备1.配置无密码登录(1)Jenkins 服务器上生成一对公钥、私钥(2)获取公钥信息(3)获取私钥信息(4)复制公钥到应用服务器二、配置 Gitlab1.创建示例项目...
    99+
    2022-11-13
  • 【Docker】docker部署springboot+vue+mysql+nginx前后端分离项目【部署实战篇】
    文章目录 0、安装docker并准备一个springboot-vue前后端分离项目前后端打包放到服务器上1、docker 安装jdk2、docker 安装mysql通过Docker命令进入My...
    99+
    2023-09-03
    docker spring boot vue.js
  • docker-compose+nginx部署前后端分离的项目实践
    目录安装docker安装必要的系统工具软件源信息切换安装配置镜像加速器安装docker-compose安装权限修改解决js、css文件404的情况Vue项目配置安装docker 安装...
    99+
    2022-11-13
  • 使用Jenkins+docker打包部署后端服务的实现
    目录安装Jenkins配置1、配置工具2、配置Publish over SSH3、编译构建4、推送jar包构建镜像老板给了两台服务器,一台windows用来打包,一台linux用于构...
    99+
    2022-11-13
    Jenkins docker打包部署
  • 怎么使用docker部署前端应用
    这篇“怎么使用docker部署前端应用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使...
    99+
    2022-10-19
  • 东方通TongWeb前后端应用部署
    最近公司让在服务器上安装TongWeb中间件,并把应用部署跑起来,因没接触过所有上网查相关资料和教程,发现相关文档非常少,自己经过两三天的摸索,终于也是吧应用部署了起来,所以在此把相关步骤记录一下,方便大家共同学习。 一、后端应用打包 po...
    99+
    2023-08-23
    java tomcat 中间件
  • 阿里SpringBoot应用自动化部署实现IDEA版Jenkins
    目录CloudToolkit简介安装使用自动化部署常用功能总结 之前分享过一些使用Jenkins进行自动化部署的技巧 ,最近发现一款阿里出品的IDEA插件CloudTool...
    99+
    2022-11-13
  • CentOS7 上利用 jenkins 实现自动部署
    前端项目打包部署,以前都是手工运行打包命令,打包结束后压缩,然后上传到服务器上解压部署。这种重复性的工作,确实有点让人烦,而且效率也不高。 本文基于 vue 的前端项目、 github 的代码仓库,简述在 CentOS7...
    99+
    2022-06-04
    自动化部署jenkins jenkins部署
  • 怎么使用Docker高效部署前端应用
    这篇文章主要介绍“怎么使用Docker高效部署前端应用”,在日常操作中,相信很多人在怎么使用Docker高效部署前端应用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用...
    99+
    2022-10-19
  • tomcat+nginx实现多应用部署的示例代码
    目录多应用部署1-tomcat配置  1.1-项目配置 1.2-服务配置2-Nginx配置3-完成部署多应用部署 1-tomcat配置   1.1...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作