Jenkins部署NodeJS工程Shell脚本

Jenkins部署NodeJS工程Shell脚本

卖萌小老头
2022-09-08 / 0 评论 / 335 阅读 / 正在检测是否收录...

nodejs项目打包部署shell脚本

#!/bin/bash
#1.2.3.4.5需要根据不同项目修改不同值
#1.项目名称
APP_NAME=cloud-mall-admin-front
#2.启动dev配置文件
CONFIG_NAME=dev
#3.端口
PORT=8000
#4.工作路径
WORK_DIR=/var/jenkins_home/workspace/$APP_NAME


echo "项目名称:$APP_NAME"
echo "编译配置:$CONFIG_NAME"
echo "服务端口:$PORT"
echo "工作路径:$WORK_DIR"

echo "安装依赖并编译>>>>>>"
# 设置淘宝源
yarn config set registry http://registry.npm.taobao.org/
# 安装依赖
yarn install
# 编译
yarn build:$CONFIG_NAME


#在$WORK_DIR文件夹下创建Dockerfile文本文件
echo "创建Dockerfile文本文件"
touch $WORK_DIR/Dockerfile

#写入Dockerfile
echo "写入Dockerfile文本内容"
cat >>$WORK_DIR/Dockerfile<<EOF
FROM node:14.18.1-alpine
RUN mkdir -p /app
WORKDIR /app
COPY . .
RUN yarn install
ENV HOST 0.0.0.0
EXPOSE $PORT
CMD [ "yarn", "serve" ]
EOF


# 清理容器和镜像
echo "清理$APP_NAME的容器"
containerId=$(docker ps -a | grep -w $APP_NAME | awk '{print $1}')
if [ -n "$containerId" ];
then 
docker stop $containerId
docker rm $containerId
echo "成功停止、删除容器"
fi
imageld=$(docker images | grep -w $APP_NAME | awk '{print $3}')
if [ -n "$imageld" ];
then
docker rmi -f $imageld
echo "成功删除镜像"
fi
echo "停止并清除镜像完成,进入创建新镜像过程"

echo "切换到工作路径$WORK_DIR"
#切换到$WORK_DIR创建镜像文件夹目录下
cd $WORK_DIR


echo "执行命令创建新镜像"
#执行docker创建镜像命令
docker build -t $APP_NAME .


#删除Dockerfile文本文件
echo "删除Dockerfile文件"
rm $WORK_DIR/Dockerfile


#运行镜像
docker run -d \
--restart=always \
--name $APP_NAME \
-p $PORT:$PORT \
$APP_NAME


echo "运行新镜像,流程完毕,端口号为:$PORT"
0

评论 (0)

取消