#!/bin/bashif [[ -n "$1" ]] ; then action=$1else action='install'fiif [ "$action" == "start" ] ;then sudo -s service docker start sudo -s docker start showdoc exit 1 fiif [ "$action" == "restart" ] ;then sudo -s docker restart showdoc exit 1fiif [ "$action" == "stop" ] ;then sudo -s docker stop showdoc exit 1fiif [ "$action" == "update" ] ;then DATE=$(date +%Y%m%d_%H%M%S_%N) if [ ! -d "/showdoc_data/html" ]; then echo "/showdoc_data/html 目录不存在" exit 1 ; fi rm -f master.tar.gz wget https://github.com/star7th/showdoc/archive/master.tar.gz if [ ! -f "master.tar.gz" ]; then echo "文件下载失败" exit 1 fi sudo -s docker stop showdoc sudo -s chmod 777 -R /showdoc_data/ sudo -s mv /showdoc_data/html /showdoc_data/html_bak_${DATE} tar -zxvf master.tar.gz -C /showdoc_data/ sudo -s mv /showdoc_data/showdoc-master /showdoc_data/html ##// */ if [ ! -d "/showdoc_data/html" ]; then echo "/showdoc_data/html 目录不存在" exit 1 ; fi sudo -s chmod 777 -R /showdoc_data/html sudo -s docker start showdoc sleep 10 curl http://localhost:4999/install/non_interactive.php?lang=zh \cp -f /showdoc_data/html_bak_${DATE}/Sqlite/showdoc.db.php /showdoc_data/html/Sqlite/showdoc.db.php \cp -r -f /showdoc_data/html_bak_${DATE}/Public/Uploads /showdoc_data/html/Public/ sudo -s curl http://localhost:4999?s=/home/update/db rm -f master.tar.gz exit 1fiif [ "$action" == "uninstall" ] ;then read -r -p "即将卸载showdoc,你是否确认删除showdoc所有数据? [Y/n] " input case $input in [yY][eE][sS]|[yY]) echo "正在卸载..." sudo -s docker stop showdoc sudo -s docker rm showdoc sudo -s docker rmi registry.docker-cn.com/star7th/showdoc sudo -s rm -rf /showdoc_data ;; [nN][oO]|[nN]) ;; *) exit 1 ;; esac exit 1fiif ! [ -x "$(command -v docker)" ]; then echo '检测到Docker尚未安装。正在试图从网络安装...所需时间与你的网络环境有关' sudo -s curl -sSL https://get.daocloud.io/docker | sh sudo -s chkconfig docker on fiif ! [ -x "$(command -v docker)" ]; then echo '检测到Docker尚未安装。正在试图从网络安装...所需时间与你的网络环境有关' sudo -s curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh - sudo -s chkconfig docker on fiif ! [ -x "$(command -v docker)" ]; then echo 'Docker自动安装失败,建议你手动安装好docker环境后再启动本脚本' exit 1 fiif [ "$(docker images |grep showdoc)" ]; then echo "你已经安装过showdoc镜像" echo "如果你想更新showdoc,请执行 ./showdoc update " echo "如果你想重启showdoc,请执行 ./showdoc restart " echo "如果你想卸载showdoc,请执行 ./showdoc uninstall " exit 1 fisudo -s service docker startecho '正在拉取showdoc镜像,请稍后...所需时间与你的网络环境有关'sudo -s docker pull registry.docker-cn.com/star7th/showdocsudo -s mkdir /showdoc_dataif [ ! -d "/showdoc_data" ]; then echo "/showdoc_data 目录不存在,请确保有创建权限" exit 1 ;fisudo -s mkdir /showdoc_data/htmlsudo -s chmod 777 -R /showdoc_datasudo -s docker run -d --name showdoc -p 4999:80 -v /showdoc_data/html:/var/www/html/ registry.docker-cn.com/star7th/showdocsleep 10sudo -s docker exec showdoc \cp -fr /showdoc_data/html/ /var/www/if [[ ! $(sudo -s docker exec showdoc php -m | grep ldap) ]] ; then echo "没有安装ldap,正在安装ing" sudo -s docker exec showdoc sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories sudo -s docker exec showdoc apk update sudo -s docker exec showdoc apk add openldap-dev sudo -s docker exec showdoc docker-php-ext-install ldap pid=$(sudo -s docker exec showdoc pgrep "php-fpm: master process") sudo -s docker exec showdoc kill -USR2 $pidelse echo "已安装ldap"fiwget https://github.com/star7th/showdoc/archive/master.tar.gzif [ ! -f "master.tar.gz" ]; then echo "文件下载失败" exit 1 fidocker stop showdocsudo -s chmod 777 -R /showdoc_data/DATE=$(date +%Y%m%d_%H%M%S_%N)sudo -s mv /showdoc_data/html /showdoc_data/html_bak_${DATE}tar -zxvf master.tar.gz -C /showdoc_data/ sudo -s mv /showdoc_data/showdoc-master /showdoc_data/html ##// */sudo -s chmod 777 -R /showdoc_datarm -f master.tar.gzdocker start showdocsleep 5if [ "$action" == "en" ] ;then sudo -s curl http://localhost:4999/install/non_interactive.php?lang=enelse sudo -s curl http://localhost:4999/install/non_interactive.php?lang=zhfisudo -s wget http://localhost:4999/install/install.lockif [ -f "install.lock" ]; then rm -rf install.lock echo -e "\n \033[32m 安装成功,访问地址:http://localhost:4999 (你也可以用局域网或者公网IP/域名访问) \033[0m \n" echo -e " \033[32m 账户密码是showdoc/123456,登录后你便可以看到右上方的管理后台入口。建议登录后修改密码。 \033[0m \n" echo -e " \033[32m 对showdoc的问题或建议请至https://github.com/star7th/showdoc 提issue \033[0m \n" echo -e " \033[32m 若觉得showdoc好用,不妨到github点个star。良好的关注度和参与度有助于开源项目的长远发展 \033[0m \n"fi