从零开始摸索VUE,配合Golang搭建导航网站(二十八v

「这是我参与11月更文挑战的第28天,活动详情查看:2021最后一次更文挑战」

前言

之前完成了前后端的完善。今天就把vue-admin-template部署到线上

之前的文章: 从零开始摸索VUE,配合Golang搭建导航网站(五.使用doker部署启动)

启动Nginx容器

跟之前的vue cli脚手架一样需要一个Nginx容器
需要更改nginx 配置文件,项目目录

1
bash复制代码docker run --name web-admin -d -p 8101:80 -v /opt/nginx/config/nginx.conf:/etc/nginx/nginx.conf -v /opt/nginx/config/admin.conf.d:/etc/nginx/conf.d -v /opt/nginx/logs:/var/log/nginx -v /opt/vue-admin:/opt/vue-admin --restart=always nginx

Nginx配置

nginx配置宿主机位置/opt/nginx/config/admin.conf.d/admin.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
ini复制代码server {
listen 80;
server_name localhost;

location / {
root /opt/vue-admin/;
index index.html index.htm;
}


error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}


location /admin/ {
# 把 /admin 路径下的请求转发给真正的后端服务器
proxy_pass http://172.17.0.4:8080;

# 把host头传过去,后端服务程序将收到your.domain.name, 否则收到的是localhost:8080
proxy_set_header Host $http_host;

# 把cookie中的path部分从/api替换成/service
proxy_cookie_path /api /;

# 把cookie的path部分从localhost:8080替换成your.domain.name
proxy_cookie_domain localhost:80 http://172.18.0.4:8080;
}
}

查看容器列表docker ps:

image.png

frp设置

三个项目容器都在这里了,现在把这个admin后台穿透到外网,参考:使用树莓派搭建内网GitLab,并实现Frp内网穿透和简单CI/CD实践

编辑客户端文件加上一下内容:

1
2
3
4
5
ini复制代码[vue-admin-pi4-master] 
type = tcp
local_ip = 127.0.0.1
local_port = 8101
remote_port = 7033

重启并查看frp状态:

1
2
lua复制代码sudo systemctl restart frpc
sudo systemctl status frpc

image.png

编写CI

还是跟vue Cli项目一样,修改CI的npm打包后的目标路径,注意npm build 命令需要改为npm run build:prod,然后修改env文件名,修改容器名:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
bash复制代码stages:
- build #任务阶段。只写了一个build阶段

cache:
key: nodemodules-$CI_COMMIT_REF_NAME
paths:
- node_modules/

build_develop:
stage: build #指定这个build_develop任务在build阶段
cache:
key: nodemodules-$CI_COMMIT_REF_NAME
paths:
- node_modules/

script:
- rm -rf .env
- cp .env.production .env
- npm install --unsafe-perm # 执行npm install 安装第三方依赖,--unsafe-perm为了解决一些安装的时候出现了一些无权限创建文件的报错
- rm -rf ./dist/ # 删除之前打包生成的文件
- npm run build:prod #重新打包生成文件
- rm -rf /opt/vue-admin/ #删除之前上次打包的的文件夹
- cp -rf ./dist/ /opt/vue-admin/ #把build生成的文件打包到nginx指定的文件夹
- docker restart web-admin #重启Docker的Nginx容器,这时候前端的所有的静态文件都是新的了
only:
- master # 指定只在master分支执行这个任务。
tags:
- b4master #指定执行任务的runner,安装runner的时候会提示填写runner的标签(tag)

最后把这个文件提交到master分支就会触发自动化部署了
出现了一次错误:

image.png
提示gyp ERR! stack Error: not found: make

使用一下命令安装build-essential

1
arduino复制代码sudo apt-get install build-essential

然后重试任务就行

新建域名解析,反向代理:

设置二级域名,指向到frp服务端服务器

image.png
然后在服务器上宝塔新建网站

image.png
新建网站后设置反向代理

image.png
反向代理设置完成,访问域名就会映射到我的树莓派上的有vue-admin-template打包好的静态文件的Nginx 容器上。

删除mock设置

务必删除下面四行,直接上线我排查了半天,因为线上默认不会报错输出,上线接口直接不请求报Error,我找了半天在eslint设置里把线上打开调试,才发现请求了mock模拟数据
image.png

总结

今天这次CI部署比较容易,因为之前有Vue cli脚手架的项目,照着改一下就可以了,现在直接访问管理后台的域名就可以了。花了一个月的时间,前端后端运维全部由自己研究完善,发现了自己虽然都懂基本的东西但是还有很多瑕疵,比真正的商业项目差了很多大一段。不过正是这次实践深刻理解术业有专攻这个道理,专业的前端还是很有必要的,前端的技术发展是真的快,现在Vue3和TypeScript非常火呀,我还没有开始接触,接下来还是需要花精力了解了解前端。

文章链接汇总&GitHub

从零开始摸索VUE,配合Golang搭建导航网站(一.项目初始化)

从零开始摸索VUE,配合Golang搭建导航网站(二.了解项目结构)

从零开始摸索VUE,配合Golang搭建导航网站(三.做一个简单的单页面)

从零开始摸索VUE,配合Golang搭建导航网站(四.项目运行环境搭建和CI脚本编写)

从零开始摸索VUE,配合Golang搭建导航网站(五.使用doker部署启动)

从零开始摸索VUE,配合Golang搭建导航网站(六.CSS容器布局学习总结)

从零开始摸索VUE,配合Golang搭建导航网站(七.CSS Flex容器布局实战总结)

从零开始摸索VUE,配合Golang搭建导航网站(八.基于Golang的Gin框架的介绍)

从零开始摸索VUE,配合Golang搭建导航网站(九.Gin框架中GORM使用)

从零开始摸索VUE,配合Golang搭建导航网站(十.Gin框架优化,DockerFile编写)

从零开始摸索VUE,配合Golang搭建导航网站(十一.Gin容器化部署上线,CI脚本编写)

从零开始摸索VUE,配合Golang搭建导航网站(十二.使用Docker 新建Mysql应用,持久化数据保存,修改CI流程)

从零开始摸索VUE,配合Golang搭建导航网站(十三.Vue cli axios 简单使用)

从零开始摸索VUE,配合Golang搭建导航网站(十四.Vue cli env环境变量 ,后端跨域设置)

从零开始摸索VUE,配合Golang搭建导航网站(十五.添加数据后CSS样式优化)

从零开始摸索VUE,配合Golang搭建导航网站(十六.CSS动画初探)

从零开始摸索VUE,配合Golang搭建导航网站(十七.VUE锚点跳转,基础模板语法总结)

从零开始摸索VUE,配合Golang搭建导航网站(十八.Gin框架分层优化)

从零开始摸索VUE,配合Golang搭建导航网站(十九.GORM数据增删改查和Gin验证器)

从零开始摸索VUE,配合Golang搭建导航网站(二十.vue-element-admin 快速上手,认识基本架构)

从零开始摸索VUE,配合Golang搭建导航网站(二十一.vue-admin-template模拟账号登录)

从零开始摸索VUE,配合Golang搭建导航网站(二十二.vue-admin-template接入后端接口)

从零开始摸索VUE,配合Golang搭建导航网站(二十三.vue-admin-template接入后端增删改接口)

从零开始摸索VUE,配合Golang搭建导航网站(二十四.vue-admin-template带筛选的列表展示,初识双向绑定)

从零开始摸索VUE,配合Golang搭建导航网站(二十五.vue-admin-template分类详情数据删改查)

从零开始摸索VUE,配合Golang搭建导航网站(二十六.vue-admin-template完善用户登录后台接口)

从零开始摸索VUE,配合Golang搭建导航网站(二十七.vue-admin-template完善前端登陆逻辑)

从零开始摸索VUE,配合Golang搭建导航网站(二十八.vue-admin-template完善CI脚本,整体完成上线)

所有代码已在GitHub开源:
koala9527/Gin-Vue-ElementUI

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%