【工具相关】showdoc文档管理平台部署实践

【工具相关】showdoc文档管理平台部署实践showdoc 是国内一款开源的文档管理系统 可用于编写 API 文档 数据字典 说明文档

大家好,欢迎来到IT知识分享网。

一、前言

1、需求来由

  • 内部资料归档混乱,内部归档地址不一,不利于资料查找及工作交接
  • 更新不及时,本地文档更新完,未同步上传到ftp服务器
  • 归档文档多为word或pdf格式,不易于编辑维护
  • 搭配任务管理系统使用,每一任务原则上都要求有输出件,以便于对任务做质量管控

综合实际存在的痛点,统一部门内部文档管理,搭建文档管理平台,用于管理开发、测试各项任务输出归档。

2、showdoc说明

官方说明文档

showdoc是国内一款开源的文档管理系统,可用于编写API文档、数据字典、说明文档。

  • 采用markdown编辑器,编辑及查阅体验较佳
  • 支持版本历史功能,便于文档回滚恢复
  • 支持回收站功能,删除超过30天以上的文件自动被删除
  • 可按照大项分类,创建目录树状结构,支持全项目文档搜索
  • 支持项目成员权限管控

二、部署安装

1、docker安装

1.1、下载docker离线包,解压缩拷贝到/usr/bin目录下

wget https://download.docker.com/linux/static/stable/x86_64/docker-19.03.9.tgz --no-proxy tar -zxvf docker-19.03.9.tgz cp docker/* /usr/bin/ 

1.2、注册编辑docker服务,添加以下配置信息到/etc/systemd/system/docker.service配置文件内

[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. #TasksMax=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process # restart the docker process if it exits prematurely Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target 

1.3、赋予/etc/systemd/system/docker.service配置文件执行权限,重新加载配置文件

chmod +x /etc/systemd/system/docker.service systemctl daemon-reload 

1.4、启动docker服务,设置开机自启动

systemctl start docker systemctl enable docker 

2、showdoc安装

2.1、关闭selinux

注:启动容器需要写/proc/self/attr/keycreate配置,启用selinux会导致没有写入权限写入失败,导致启用容器出现write /proc/self/attr/keycreate: permission denied错误

  • 临时关闭selinux
setenforce 0 
  • 永久关闭selinux
    修改/etc/selinux/config配置文件,修改配置为SELINUX=disabled

2.2、拉取showdoc官方镜像,重命名镜像名为star7th/showdoc:latest

docker pull registry.cn-shenzhen.aliyuncs.com/star7th/showdoc docker tag registry.cn-shenzhen.aliyuncs.com/star7th/showdoc star7th/showdoc 

2.3、创建数据存储目录/opt/showdoc_data/html,赋予存储目录最高权限,启动showdoc容器

mkdir -p /opt/showdoc_data/html
chmod  -R 777 /opt/showdoc_data
docker run -d --name showdoc --user=root --privileged=true -p 4999:80 -v /opt/showdoc_data/html:/var/www/html/ star7th/showdoc

2.4、此时web访问http://ip:4999登录showdoc平台
注:默认登录账号密码为showdoc/

3、设置开机自启

查看当前容器ID,设置自动启动

  • 方法一
docker update --restart=always `docker ps -a -q` 
  • 方法二
echo "sleep 3" >> /etc/rc.local echo "docker start `docker ps -a`" >> /etc/rc.local 

三、数据备份

1、docker镜像备份

备份当前docker镜像

[root@node226 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE star7th/showdoc latest 29bb506bad96 28 hours ago 392MB registry.cn-shenzhen.aliyuncs.com/star7th/showdoc latest 29bb506bad96 28 hours ago 392MB [root@node226 ~]# docker save star7th/showdoc -o showdoc.tar 

2、showdoc数据备份

2.1、编写备份脚本/opt/backup.sh如下

[root@node227 ~]# cat /opt/backup.sh 
#!/bin/bash
#定义备份路径
path="/mnt/backup"
#定义数据保存天数
day=3
#备份文件
zip -r $path/showdoc-`date +%Y%m%d%H%M`.zip /opt/showdoc_data/html/
#定期删除文件
find $path -type f -mtime +$day -exec rm -f {} \;

2.2、设置crontab定时任务,每天凌晨三点定时执行脚本

[root@node227 ~]# crontab -l 0 3 * * * /bin/bash /opt/backup.sh 

四、数据恢复

1、docker镜像恢复

1.1、参照二、部署安装完成docker环境部署

[root@node134 ~]# setenforce 0 [root@node134 ~]# cat /etc/selinux/config | grep SELINUX= SELINUX=disabled 

1.3、将docker镜像导入到目标服务器内

[root@node134 ~]# docker load < showdoc.tar [root@node134 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE star7th/showdoc latest 29bb506bad96 30 hours ago 392MB 

1.4、运行容器

[root@node134 ~]# mkdir -p /opt/showdoc_data/html
[root@node134 ~]# chmod  -R 777 /opt/showdoc_data
[root@node134 ~]# docker run -d --name showdoc --restart=always --user=root --privileged=true -p 4999:80 -v /opt/showdoc_data/html:/var/www/html/ star7th/showdoc

2、showdoc数据恢复

恢复数据库数据Sqlite/showdoc.db.php和附件数据Public/Uploads/.后,重新访问showdoc平台即可

[root@node134 ~]# unzip showdoc-202011171546.zip
[root@node134 ~]# \cp -r opt/showdoc_data/html/Sqlite/showdoc.db.php /opt/showdoc_data/html/Sqlite/
[root@node134 ~]# \cp -r opt/showdoc_data/html/Public/Uploads/. /opt/showdoc_data/html/Public/Uploads/

五、常用操作

1、镜像相关

  • 查看镜像列表:docker images
  • 搜索官方镜像:docker search <image_name>
  • 下载官方镜像:docker pull <image_name>
  • 重命名镜像:docker tag <image_name_source> <image_name_target>
  • 删除镜像:docker rmi <image_name>
  • 导出镜像:docker save <image_name> -o <file_name>
  • 导入镜像:docker load < <file_name>

2、容器相关

  • 查看容器列表:docker ps -a
  • 停止容器:docker stop <container_id>
  • 启动容器:docker start <container_id>
  • 删除容器:docker rm <container_id>
  • 进入容器:docker attach <container_id>

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/133831.html

(0)
上一篇 2025-07-17 16:33
下一篇 2025-07-17 17:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信