首页 > 系统服务 > 详细

结合docker发布前端项目(基于npm包管理)的shell脚本

时间:2019-11-23 11:09:10      阅读:86      评论:0      收藏:0      [点我收藏+]

结合docker发布前端项目(基于npm包管理)的shell脚本


本教程依据个人理解并经过实际验证为正确,特此记录下来,权当笔记。

注:基于linux操作系统

目前主流的前后端分离的项目中,常常在部署上线这个环节会遇到很多麻烦,这里我使用了docker进行部署,这段shell脚本我放在前端工程目录下,每次要部署上线时运行这个文件,可以很方便的帮助上线。注解都写在了代码中。
#!/usr/bin/env bash

// 以下用变量存放一些配置信息
BUILD_PROFILE="prod"
PORT="7002"
LOGIN_COMMAND="login --username=... -p=... registry.cn-hangzhou.aliyuncs.com"
DOCKER_NAME="your_docker_name"
repo="registry.cn-hangzhou.aliyuncs.com/your_project/${DOCKER_NAME}:latest"
REMOTE_SERVER="root@100.100.100.100"
JOB_NAME=${DOCKER_NAME}

#编译
echo start to compile // 提示开始执行此段脚本
rm -rf dist  // 项目基于npm管理,打包后所有的资源都存放在dist文件中,这里清除上一次生成的文件
npm run build-${BUILD_PROFILE}  // 打包生产环境的代码

# Docker
echo Start to build docker...  // 开始构建docker镜像

cd ci  // 脚本放在ci目录下,进入该目录
rm -rf dist  // 删除上一次生成的文件
cp -rf ../dist .  // 将新生成的dist文件拷贝到ci目录下
docker build -t ${DOCKER_NAME} . // 开始构建镜像,Dockerfile文件在我另一篇博客中会有介绍
rm -rf dist // 构建完成后删除dist文件


docker ${LOGIN_COMMAND}  // 登录远程docker仓库
docker tag ${DOCKER_NAME} ${repo} // 打标签
docker push ${repo} // push到远程仓库

# Deploy
echo deploy to remote server...  // 开始发布

ssh ${REMOTE_SERVER}  " docker ${LOGIN_COMMAND}; docker pull ${repo}; docker rm -f $JOB_NAME || true; // docker run -d -p ${PORT}:80 --name ${JOB_NAME} ${repo};"
// 使用ssh登录远程服务器,并执行后面的命令,拉取镜像,并构建容器。

结合docker发布前端项目(基于npm包管理)的shell脚本

原文:https://www.cnblogs.com/tian874540961/p/11915599.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!