#!/usr/bin/env node /** * * 例如: * - ./scripts/deploy ali * - ./scripts/deploy github */ const { execShell } = require("./.exec"); const packageVersion=require('../package.json').version const dockerDeployInfo={ repoAddress:"registry.cn-hangzhou.aliyuncs.com/142vip/doc_book", containerName:'408CSFamily', networkName:'service_env_net', } const imageName=`${dockerDeployInfo.repoAddress}:${dockerDeployInfo.containerName}-${packageVersion}` // 支持的命令 const SupportScripts={ Github:` set -e ./scripts/build proxy && cd docs/.vuepress/dist git init && git add -A ## 配置信息 git config user.name 'chu fan' git config user.email 'fairy_408@2925.com' git config --list git commit -m "release v${packageVersion}" ## 部署到github pages git push -f https://github.com/mmdapl/408CSFamily.git master:pages/github cd - `, Ali:[ // 容器存在即删除 ` if docker inspect --format='{{.State.Running}}' ${dockerDeployInfo.containerName} >/dev/null 2>&1;then docker rm -f ${dockerDeployInfo.containerName} exit 0; else echo "容器:${dockerDeployInfo.containerName},不存在" exit 1; fi `, // 镜像存在即删除 ` if [[ "$(docker images -q ${imageName} 2> /dev/null)" != "" ]];then docker rmi ${imageName} exit 0; else echo -e "镜像:${imageName},不存在" exit 1; fi `, // 运行容器 ` docker run -d --name ${dockerDeployInfo.containerName} \ -p 7000:80 \ --network=${dockerDeployInfo.networkName} \ --restart=unless-stopped \ --ip=172.30.0.100 \ ${imageName} `, ] } const deployName=process.argv[2]; function getDeployCommand(){ let deployCommand=SupportScripts.Ali // 部署到阿里云服务器 if(deployName==='ali'){ deployCommand=SupportScripts.Ali } // 部署到Github if(deployName==='github'){ deployCommand=SupportScripts.Github } return deployCommand } // 执行 ;(async ()=>{ const deployCommand=getDeployCommand() // console.log(deployCommand) await execShell(deployCommand) })()