立志是事业的大门,工作是登门入室的的旅途。——巴斯德
后台服务部署好,结果如下:
yapi 测试 web 接口符合我们的预期设计:
比如查看订单列表:
在前后端联调完毕时,后续用 jenkins 结合 shell 脚本 来 自动部署:
好,下面就是记录简要的步骤及命令:
前台用到的命令:
# 安装依赖
cnpm install
# 运行项目,暴露 http 接口
cnpm run dev
# 打包成 dist 文件夹 - index.html
cnpm run build
nginx
中部署 vue.js
步骤如下:
事先从可运行的 nginx 容器中拷贝 对应的文件到宿主机:
在宿主机运行以下命令:
当前位置:
docker cp nginx:/etc/nginx /docker/nginx/config/
docker cp nginx:/usr/share/nginx/html /docker/nginx/data/
docker cp nginx:/var/log/nginx /docker/nginx/logs/
然后接着执行:
docker run --name nginx-online -p 8765:80 -v /docker/nginx/config/nginx/:/etc/nginx -v /docker/nginx/data/online-html:/usr/share/nginx/html -v /docker/nginx/logs/:/var/log/nginx -d nginx:latest
docker run --name nginx-mall -p 8090:80 -v /docker/nginx/config/nginx/:/etc/nginx -v /docker/nginx/data/mall-html:/usr/share/nginx/html -v /docker/nginx/logs/:/var/log/nginx -d nginx:latest
效果图:【图片中8090->8001不对,正确的是8090->80,上方的命令是正确的已修改,请放心使用】
然后就是将 online 项目下的 dist 下的3个文件 拷贝到 /docker/nginx/data/online-html,此时加上50x.html共四个文件;
然后将 mall 项目下的 dist 下的3个文件 拷贝到 /docker/nginx/data/mall-html,此时加上50x.html共四个文件。
访问效果:
前台:
后台管理系统:
支付宝支付:(支付宝沙箱环境不稳定,所以有时候订单会创建不了)
【如果谷歌浏览器测试支付没反应的话,就换火狐浏览器试试 / 360浏览器试试】
个人中心也可以查看订单已支付:
后台部署的 docker 相关的命令 及 文件 整理好后会 补上 的~
开始补坑:
部署目录架构:
接下来逐步部署的命令:
对于 srv 层部署:
cd ~
cd /root/renrenshop/renrenshop-srvs/ && cd goods_srv/ && mkdir target && cd target && mkdir goods_srv
cd /root/renrenshop/renrenshop-srvs/ && cd order_srv/ && mkdir target && cd target && mkdir order_srv
cd /root/renrenshop/renrenshop-srvs/ && cd inventory_srv/ && mkdir target && cd target && mkdir inventory_srv
cd /root/renrenshop/renrenshop-srvs/ && cd userop_srv/ && mkdir target && cd target && mkdir userop_srv
cd /root/renrenshop/renrenshop-srvs/ && cd user_srv && mkdir target && cd target && mkdir user_srv
######》 确保config-debug.yaml 和 config-pro.yaml 配置没问题 才能开始下一步《======
cd /root/renrenshop/renrenshop-srvs/
go build -o goods_srv/target/goods_srv_main goods_srv/main.go
go build -o order_srv/target/order_srv_main order_srv/main.go
go build -o inventory_srv/target/inventory_srv_main inventory_srv/main.go
go build -o userop_srv/target/userop_srv_main userop_srv/main.go
go build -o user_srv/target/user_srv_main user_srv/main.go
cp goods_srv/config-debug.yaml goods_srv/target/goods_srv/
cp goods_srv/config-pro.yaml goods_srv/target/goods_srv/
cp goods_srv/start.sh goods_srv/target/
cp order_srv/config-debug.yaml order_srv/target/order_srv/
cp order_srv/config-pro.yaml order_srv/target/order_srv/
cp order_srv/start.sh order_srv/target/
cp inventory_srv/config-debug.yaml inventory_srv/target/inventory_srv/
cp inventory_srv/config-pro.yaml inventory_srv/target/inventory_srv/
cp inventory_srv/start.sh inventory_srv/target/
cp userop_srv/config-debug.yaml userop_srv/target/userop_srv/
cp userop_srv/config-pro.yaml userop_srv/target/userop_srv/
cp userop_srv/start.sh userop_srv/target/
cp user_srv/config-debug.yaml user_srv/target/user_srv/
cp user_srv/config-pro.yaml user_srv/target/user_srv/
cp user_srv/start.sh user_srv/target/
# 你可能看不到这行 - 可能用到的命令
chmod +x start.sh
dos2unix start.sh
./start.sh
对于 web 层部署:
cd ~
cd /root/renrenshop/renrenshop-apis/ && cd goods-web/ && mkdir target && cd target && mkdir goods-web
cd /root/renrenshop/renrenshop-apis/ && cd order-web/ && mkdir target && cd target && mkdir order-web
cd /root/renrenshop/renrenshop-apis/ && cd oss-web/ && mkdir target && cd target && mkdir oss-web
cd /root/renrenshop/renrenshop-apis/ && cd userop-web/ && mkdir target && cd target && mkdir userop-web
cd /root/renrenshop/renrenshop-apis/ && cd user-web/ && mkdir target && cd target && mkdir user-web
######》 确保config-debug.yaml 和 config-pro.yaml 配置没问题 才能开始下一步《======
cd /root/renrenshop/renrenshop-apis/
go build -o goods-web/target/goods_web_main goods-web/main.go
go build -o order-web/target/order_web_main order-web/main.go
go build -o oss-web/target/oss_web_main oss-web/main.go
go build -o userop-web/target/userop_web_main userop-web/main.go
go build -o user-web/target/user_web_main user-web/main.go
cp goods-web/config-debug.yaml goods-web/target/goods-web/
cp goods-web/config-pro.yaml goods-web/target/goods-web/
cp goods-web/start.sh goods-web/target/
cp order-web/config-debug.yaml order-web/target/order-web/
cp order-web/config-pro.yaml order-web/target/order-web/
cp order-web/start.sh order-web/target/
cp oss-web/config-debug.yaml oss-web/target/oss-web/
cp oss-web/config-pro.yaml oss-web/target/oss-web/
cp oss-web/start.sh oss-web/target/
cp userop-web/config-debug.yaml userop-web/target/userop-web/
cp userop-web/config-pro.yaml userop-web/target/userop-web/
cp userop-web/start.sh userop-web/target/
cp user-web/config-debug.yaml user-web/target/user-web/
cp user-web/config-pro.yaml user-web/target/user-web/
cp user-web/start.sh user-web/target/
# 你可能看不到这行 - 可能用到的命令
chmod +x start.sh
dos2unix start.sh
./start.sh
形如 goods-web/start.sh 写法:
srv_name="goods_web_main"
chmod +x ./$srv_name
#重启,如果已经存在则关闭重启
if pgrep -x $srv_name > /dev/null
then
echo "${srv_name} is running"
echo "shutting down ${srv_name}"
if ps -a | grep $srv_name | awk '{print $1}' | xargs kill $1
then
echo "starting ${srv_name}"
./$srv_name > /dev/null 2>&1 &
echo "start ${srv_name} success"
fi
else
echo "starting ${srv_name}"
./$srv_name > /dev/null 2>&1 &
echo "start ${srv_name} success"
fi