mirror of
https://github.com/dqzboy/Docker-Proxy.git
synced 2026-01-12 16:25:42 +08:00
feat: Add installation and uninstallation options for the hubcmdui service
This commit is contained in:
@@ -85,10 +85,13 @@ cd "${PROXY_DIR}"
|
||||
|
||||
GITRAW="https://raw.githubusercontent.com/dqzboy/Docker-Proxy/main"
|
||||
CNGITRAW="https://gitee.com/boydqz/Docker-Proxy/raw/main"
|
||||
|
||||
# docker registry
|
||||
IMAGE_NAME="dqzboy/registry"
|
||||
UI_IMAGE_NAME="dqzboy/docker-registry-ui"
|
||||
DOCKER_COMPOSE_FILE="docker-compose.yaml"
|
||||
# HubCMD-UI
|
||||
CMDUI_IMAGE_NAME="dqzboy/hubcmd-ui"
|
||||
CMDUI_COMPOSE_FILE="${GITRAW}/hubcmdui/${DOCKER_COMPOSE_FILE}"
|
||||
|
||||
attempts=0
|
||||
maxAttempts=3
|
||||
@@ -1669,8 +1672,6 @@ while true; do
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
|
||||
function PROMPT(){
|
||||
PUBLIC_IP=$(curl -s https://ifconfig.me)
|
||||
ALL_IPS=$(hostname -I)
|
||||
@@ -1694,7 +1695,6 @@ INFO
|
||||
INFO "================================================================"
|
||||
}
|
||||
|
||||
|
||||
function INSTALL_PROXY() {
|
||||
ALL_IN_ONE() {
|
||||
CHECK_OS
|
||||
@@ -1760,17 +1760,150 @@ case $proxy_install in
|
||||
esac
|
||||
}
|
||||
|
||||
function REMOVE_CMDUI() {
|
||||
if [ -d "${CMDUI_DIR}" ]; then
|
||||
if [ -f "${CMDUI_DIR}/${DOCKER_COMPOSE_FILE}" ]; then
|
||||
INFO "停止和移除HubCMD-UI容器"
|
||||
docker-compose -f "${CMDUI_DIR}/${DOCKER_COMPOSE_FILE}" down --remove-orphans
|
||||
rm -rf "${CMDUI_DIR}"
|
||||
else
|
||||
WARN "${LIGHT_YELLOW}文件${CMDUI_DIR}/${DOCKER_COMPOSE_FILE} 不存在,无需进行删除操作!${RESET}"
|
||||
fi
|
||||
else
|
||||
WARN "${LIGHT_YELLOW}目录 ${CMDUI_DIR} 不存在,无需进行删除操作!${RESET}"
|
||||
fi
|
||||
|
||||
docker images | grep "^${CMDUI_IMAGE_NAME}.*<none>" | awk '{print $3}' | xargs -r docker rmi
|
||||
|
||||
images=$(docker images ${CMDUI_IMAGE_NAME} --format '{{.Repository}}:{{.Tag}}')
|
||||
latest=$(echo "$images" | sort -V | tail -n1)
|
||||
for image in $images; do
|
||||
if [ "$image" != "$latest" ]; then
|
||||
docker rmi $image
|
||||
fi
|
||||
done
|
||||
|
||||
# 强制移除所有相关镜像
|
||||
docker rmi --force $(docker images -q ${CMDUI_IMAGE_NAME}) &>/dev/null
|
||||
}
|
||||
|
||||
|
||||
function HUBCMDUI() {
|
||||
CMDUI_NAME="hubcmd-ui"
|
||||
CMDUI_DIR="${PROXY_DIR}/hubcmdui"
|
||||
|
||||
CMDUI_PROMPT() {
|
||||
PUBLIC_IP=$(curl -s https://ifconfig.me)
|
||||
ALL_IPS=$(hostname -I)
|
||||
INTERNAL_IP=$(echo "$ALL_IPS" | awk '$1!="127.0.0.1" && $1!="::1" && $1!="docker0" {print $1}')
|
||||
|
||||
echo
|
||||
INFO "=================感谢您的耐心等待,安装已经完成=================="
|
||||
INFO
|
||||
INFO "请用浏览器访问 HubCMD-UI 面板: "
|
||||
INFO "公网访问地址: ${UNDERLINE}http://$PUBLIC_IP:30080${RESET}"
|
||||
INFO "内网访问地址: ${UNDERLINE}http://$INTERNAL_IP:30080${RESET}"
|
||||
INFO
|
||||
INFO "后端访问地址: 地址后面跟admin,例: ${UNDERLINE}http://$INTERNAL_IP/admin:30080${RESET}"
|
||||
INFO "默认账号密码: ${LIGHT_GREEN}root${RESET}/${LIGHT_CYAN}admin${RESET}"
|
||||
INFO
|
||||
INFO "服务安装路径: ${LIGHT_BLUE}${CMDUI_DIR}${RESET}"
|
||||
INFO
|
||||
INFO "作者博客: https://dqzboy.com"
|
||||
INFO "技术交流: https://t.me/dqzboyblog"
|
||||
INFO "代码仓库: https://github.com/dqzboy/Docker-Proxy"
|
||||
INFO
|
||||
INFO "================================================================"
|
||||
}
|
||||
|
||||
INSTALL_HUBCMDUI() {
|
||||
mkdir -p ${CMDUI_DIR}
|
||||
|
||||
INFO "正在安装HubCMD-UI服务,请稍等!安装路径 ${LIGHT_CYAN}${CMDUI_DIR}${RESET}"
|
||||
|
||||
if [[ -f "${CMDUI_DIR}/${DOCKER_COMPOSE_FILE}" ]]; then
|
||||
if docker-compose ps --services 2>/dev/null | grep -q "^${CMDUI_NAME}$"; then
|
||||
INFO "${CMDUI_NAME} 已经安装并启动,无需重复执行安装!"
|
||||
else
|
||||
docker-compose -f "${CMDUI_DIR}/${DOCKER_COMPOSE_FILE}" up -d
|
||||
fi
|
||||
else
|
||||
wget -NP ${CMDUI_DIR}/ ${CMDUI_COMPOSE_FILE} &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
WARN "下载${LIGHT_YELLOW}docker-compose.yaml 文件失败${RESET},请稍后重试!"
|
||||
HUBCMDUI
|
||||
fi
|
||||
docker-compose -f "${CMDUI_DIR}/${DOCKER_COMPOSE_FILE}" up -d
|
||||
if [ $? -eq 0 ]; then
|
||||
CMDUI_PROMPT
|
||||
exit 1
|
||||
else
|
||||
WARN "服务安装失败,请稍后重试!"
|
||||
HUBCMDUI
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
UNINSTALL_HUBCMDUI() {
|
||||
WARN "${LIGHT_RED}注意:${RESET} ${LIGHT_YELLOW}请执行删除之前确定是否需要备份配置文件${RESET}"
|
||||
while true; do
|
||||
read -e -p "$(INFO "本人${LIGHT_RED}已知晓后果,确认删除${RESET}服务? ${PROMPT_YES_NO}")" delcmdui
|
||||
case "$delcmdui" in
|
||||
y|Y )
|
||||
REMOVE_CMDUI
|
||||
break;;
|
||||
n|N )
|
||||
WARN "退出执行卸载服务"
|
||||
break;;
|
||||
* )
|
||||
INFO "请输入 ${LIGHT_GREEN}y${RESET} 或 ${LIGHT_YELLOW}n${RESET}";;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
SEPARATOR "HubCMD-UI管理"
|
||||
echo -e "1) ${BOLD}${LIGHT_GREEN}安装${RESET}HubCMD-UI"
|
||||
echo -e "2) ${BOLD}${LIGHT_YELLOW}卸载${RESET}HubCMD-UI"
|
||||
echo -e "3) ${BOLD}返回${LIGHT_RED}主菜单${RESET}"
|
||||
echo -e "0) ${BOLD}退出脚本${RESET}"
|
||||
echo "---------------------------------------------------------------"
|
||||
read -e -p "$(INFO "输入${LIGHT_CYAN}对应数字${RESET}并按${LIGHT_GREEN}Enter${RESET}键 > ")" cmdui_choice
|
||||
|
||||
case $cmdui_choice in
|
||||
1)
|
||||
INSTALL_HUBCMDUI
|
||||
HUBCMDUI
|
||||
;;
|
||||
2)
|
||||
UNINSTALL_HUBCMDUI
|
||||
HUBCMDUI
|
||||
;;
|
||||
3)
|
||||
main_menu
|
||||
;;
|
||||
0)
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
WARN "输入了无效的选择。请重新${LIGHT_GREEN}选择0-8${RESET}的选项."
|
||||
HUBCMDUI
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
function COMP_INST() {
|
||||
SEPARATOR "安装组件"
|
||||
echo -e "1) ${BOLD}安装${LIGHT_GREEN}环境依赖${RESET}"
|
||||
echo -e "2) ${BOLD}安装${LIGHT_GREEN}Docker${RESET}"
|
||||
echo -e "2) ${BOLD}安装${LIGHT_CYAN}Docker${RESET}"
|
||||
echo -e "3) ${BOLD}安装${LIGHT_MAGENTA}Compose${RESET}"
|
||||
echo -e "4) ${BOLD}安装${GREEN}Nginx${RESET}"
|
||||
echo -e "5) ${BOLD}安装${LIGHT_CYAN}Caddy${RESET}"
|
||||
echo -e "5) ${BOLD}安装${LIGHT_BLUE}Caddy${RESET}"
|
||||
echo -e "6) ${BOLD}配置${LIGHT_YELLOW}Nginx${RESET}"
|
||||
echo -e "7) ${BOLD}配置${CYAN}Caddy${RESET}"
|
||||
echo -e "8) ${BOLD}返回${LIGHT_RED}主菜单${RESET}"
|
||||
echo -e "8) ${BOLD}安装${BLUE}HubCMD-UI${RESET}"
|
||||
echo -e "9) ${BOLD}返回${LIGHT_RED}主菜单${RESET}"
|
||||
echo -e "0) ${BOLD}退出脚本${RESET}"
|
||||
echo "---------------------------------------------------------------"
|
||||
read -e -p "$(INFO "输入${LIGHT_CYAN}对应数字${RESET}并按${LIGHT_GREEN}Enter${RESET}键 > ")" comp_choice
|
||||
@@ -1846,6 +1979,10 @@ case $comp_choice in
|
||||
COMP_INST
|
||||
;;
|
||||
8)
|
||||
HUBCMDUI
|
||||
COMP_INST
|
||||
;;
|
||||
9)
|
||||
main_menu
|
||||
;;
|
||||
0)
|
||||
@@ -2332,6 +2469,7 @@ fi
|
||||
RM_ALLSERVICE() {
|
||||
STOP_REMOVE_CONTAINER
|
||||
REMOVE_NONE_TAG
|
||||
REMOVE_CMDUI
|
||||
docker rmi --force $(docker images -q ${IMAGE_NAME}) &>/dev/null
|
||||
docker rmi --force $(docker images -q ${UI_IMAGE_NAME}) &>/dev/null
|
||||
if [ -d "${PROXY_DIR}" ]; then
|
||||
|
||||
Reference in New Issue
Block a user