1
0
mirror of https://github.com/142vip/408CSFamily.git synced 2026-02-03 02:23:38 +08:00
Files
408CSFamily/scripts/network
2023-09-06 17:24:20 +08:00

99 lines
2.0 KiB
JavaScript
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env node
/**
*
* 例如:
* - ./scripts/network create
* - ./scripts/network inspect
* - ./scripts/network rm
*/
const { execShell, BaseSetting} = require("./.exec");
const scriptName=process.argv[2];
/**
* 网络基础信息
* - 网络名称
* - 子网掩码
* - 网关地址
*/
const dockerNetworkInfo={
defaultName:'service_env_net',
subnet:'172.30.0.0/24',
gateway:'172.30.0.1',
}
// 支持的命令
const SupportScripts={
ls:'docker network ls',
create:[
// 创建网关
`
docker network create
--subnet=${dockerNetworkInfo.subnet}
--gateway=${dockerNetworkInfo.gateway}
${dockerNetworkInfo.defaultName}
`,
// 查看创建后基本信息
`
docker network inspect ${dockerNetworkInfo.defaultName}
`
].join(' && '),
rm:[
// 参数校验
`
if test -z "${dockerNetworkInfo.defaultName}";then
echo "参数错误 网络名称不能为空。脚本执行eg bash xxx.sh rm 网络名称"
fi
`,
// 判断网络是否存在
`
docker network ls | grep -w "${dockerNetworkInfo.defaultName}"
if [ $? -eq 1 ] ;then
echo "容器网络:${dockerNetworkInfo.defaultName} 不存在,删除无效"
exit 0;
fi
`,
// 删除网络
`
docker network rm "${dockerNetworkInfo.defaultName}"
`
].join(''),
inspect:
`
docker network inspect ${dockerNetworkInfo.defaultName}
`
}
/**
* 获取需要执行的shell命令
* @param scriptName
* @returns {string}
*/
function getCommand(scriptName){
let deployCommand=SupportScripts.ls
// 部署到阿里云服务器
if(scriptName==='ls'){
deployCommand=SupportScripts.ls
}
// 部署到Github
if(scriptName==='rm'){
deployCommand=SupportScripts.rm
}
if(scriptName==='create'){
deployCommand=SupportScripts.create
}
if(scriptName==='inspect'){
deployCommand=SupportScripts.inspect
}
return deployCommand
}
// 执行
;(async ()=>{
const command=getCommand(scriptName)
await execShell(command)
})()