Jenkins部署GitHub上的前端项目

网友投稿 734 2022-05-29

请先阅读前两篇

Docker安装Jenkins并配置GitHub

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

前提-Jenkins配置node环境

1.配置node插件

系统配置-插件管理-可选插件,搜索nodejs,直接安装

配置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

宿主机(自己决定)

Jenkins部署GitHub上的前端项目

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

/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重启时会自动重启该容器

访问-成功

Docker Git GitHub Jenkins

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:GaussDB(DWS)对象依赖案例集锦
下一篇:数据库系统的概述
相关文章