Jenkins部署GitHub上的前端项目

举报
搞前端的半夏 发表于 2021/10/24 20:49:29 2021/10/24
【摘要】 ​ 请先阅读前两篇Docker安装Jenkins并配置GitHubJenkins+GitHub报错hudson.plugins.git.GitException: Failed to fetch from GitHub 443前提-Jenkins配置node环境1.配置node插件系统配置-插件管理-可选插件,搜索nodejs,直接安装配置node版本General可以直接全部选择不填,但是...


 请先阅读前两篇
Docker安装Jenkins并配置GitHub

Jenkins+GitHub报错hudson.plugins.git.GitException: Failed to fetch from GitHub 443

前提-Jenkins配置node环境
1.配置node插件
系统配置-插件管理-可选插件,搜索nodejs,直接安装

  1. 配置node版本
    General
    可以直接全部选择不填,但是建议勾选丢弃旧的构建

这里丢弃旧的构建是指 丢弃之前的构建记录。

如下图,这是Jenkins的构建记录,可以选择保留的天数以及保留的条数。

源码管理

这里为了解决GitHub使用https,经常报443的问题,使用ssh方式,进行代码的管理。

点击 添加按钮,添加私钥,具体请查看另一篇文章。

如果你不希望使用ssh,那么请直接选择

用户名密码凭证

构建触发器
直接选择GitHub hook trigger for GITScm polling

构建环境

构建
选择执行shell,这里请安装cnpm,构建速度快,且容易报错。

echo $PATH
node -v
npm -v
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install
npm run build

如果部署到服务器的话,建议打包

cd dist
tar -zcvf dist.tar.gz *

构建后步骤,发布到远程服务器
这里我们时使用docker安装的Jenkins, 如果你部署的服务器就是jenkins服务器,那可以直接通过宿主机-容器共享卷的方式部署。因为比较简单,这里简单的说一下:

找到jenkins构建后的目录
做一个共享卷的操作,是的构建结束之后,宿主机直接拥有打包后的文件,所以最好的方式可以把宿主机的目录设置为nginx的web目录
但是,会存在发布到远程服务器的情况,下面着重介绍一下:

1、安装Publish Over SSH插件

首页 -> 点击系统管理 -> 管理插件 ->可选插件 -> 过滤:ssh -> 选择Publish Over SSH插件,点击直接安装

2、配置SSH

系统管理 -> 系统设置 -> 下拉,找到Publish over SSH

下面有一个test configuration 按钮,点击测试,sussess表示连接成功。

构建后步骤

cd /home/share/blog/www
tar -zxvf dist.tar.gz
rm -f dist.tar.gz

远程服务器配置的nginx进行访问
1、下载镜像

docker pull nginx
2、启动nginx容器

docker run -d -p 9999:80 --name nginx nginx

这里将容器的80端口映射到9999端口,访问ip:9999 即可

-d 后台运行

3、找到容器中nginx的位置

3、在宿主机和nginx容器之间建立数据卷

nginx.conf 配置文件

logs 日志文件

www 源代码部署文件

!!! 如果直接执行下面的命令的话,可能会报错,Are you trying to mount a directory onto a file or vice-versa,因为不能挂载文件,只能挂载文件夹,所以先在容器中复制一份配置文件。

第一步已经启动了一个nginx,所以可以直接拷贝

mkdir -p /home/share/blog/conf /home/share/blog/logs

拷贝配置文件到工作目录
docker cp -a nginx:/etc/nginx/nginx.conf /home/share/blog/conf
宿主机(自己决定)

容器(容器启动后自动生成的)

/home/share/blog/www /usr/share/nginx/html
/home/share/blog/conf/nginx.conf

/etc/nginx/nginx.conf
/home/share/blog/logs /var/log/nginx
首先停止之前的容器并删除

docker stop nginx
docker rm nginx

重新启动容器并挂载工作目录
docker run -d --restart always -p 9999:80 -v /home/share/blog/www:/usr/share/nginx/html -v /home/share/blog/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/share/blog/logs:/var/log/nginx --name nginx nginx
// --restart always
// 表示docker重启时会自动重启该容器
访问-成功

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。