#!/bin/bash # KKFileView容器名称 CONTAINER_NAME="kkfileview" # KKFileView版本 KK_VERSION="4.4.0" # 映射端口(主机:容器) PORT="8012" # 数据存储路径 CONF_PATH="/docker-data/kkfileview/conf" # 镜像地址 IMAGE="docker.tanuki.vip/kkfileview:${KK_VERSION}" # 创建目录并设置权限函数 create_dirs() { # 创建数据目录并设置权限 if [ ! -d "$CONF_PATH" ]; then mkdir -p "$CONF_PATH" echo "创建数据目录: $CONF_PATH" chmod -R 777 "$CONF_PATH" echo "设置数据目录权限: $CONF_PATH" fi } # 部署KKFileView deploy() { if [ "$(docker ps -q -f name=$CONTAINER_NAME)" ]; then echo "KKFileView容器 $CONTAINER_NAME 已存在并运行中" return 1 fi if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then echo "发现已停止的KKFileView容器,正在启动..." docker start $CONTAINER_NAME return 0 fi echo "开始部署KKFileView容器..." create_dirs docker run -d --restart always --name $CONTAINER_NAME\ -p $PORT:8012 \ -v $CONF_PATH/application.properties:/opt/kkFileView-4.4.0/config/application.properties \ $IMAGE if [ $? -eq 0 ]; then echo "KKFileView容器部署成功!" echo "容器名称: $CONTAINER_NAME" echo "映射端口: $PORT" else echo "KKFileView容器部署失败!" fi } # 查看日志 logs() { if [ ! "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then echo "KKFileView容器 $CONTAINER_NAME 不存在" return 1 fi echo "查看KKFileView容器日志 (按Ctrl+C退出)..." docker logs -f --tail 200 $CONTAINER_NAME } # 重启容器 restart() { if [ ! "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then echo "KKFileView容器 $CONTAINER_NAME 不存在" return 1 fi echo "正在重启KKFileView容器..." docker restart $CONTAINER_NAME if [ $? -eq 0 ]; then echo "KKFileView容器重启成功!" else echo "KKFileView容器重启失败!" fi } # 删除容器 remove() { if [ ! "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then echo "KKFileView容器 $CONTAINER_NAME 不存在" return 1 fi echo "警告:此操作将删除KKFileView容器" read -p "确定要删除吗?(y/n) " confirm if [ "$confirm" != "y" ] && [ "$confirm" != "Y" ]; then echo "取消删除操作" return 0 fi echo "正在停止并删除KKFileView容器..." docker stop $CONTAINER_NAME docker rm $CONTAINER_NAME if [ $? -eq 0 ]; then echo "KKFileView容器删除成功!" else echo "KKFileView容器删除失败!" fi } # 显示帮助 show_help() { echo "KKFileView容器管理脚本" echo "用法: $0 [命令]" echo "命令列表:" echo " deploy - 部署并启动KKFileView容器" echo " logs - 查看KKFileView容器日志" echo " restart - 重启KKFileView容器" echo " remove - 删除KKFileView容器" echo " help - 显示帮助信息" } # 主逻辑 case "$1" in deploy) deploy ;; logs) logs ;; restart) restart ;; remove) remove ;; help) show_help ;; *) echo "未知命令: $1" show_help exit 1 ;; esac