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

news/2024/7/27 8:23:17/文章来源:https://blog.csdn.net/Micha_Lu/article/details/136486457

文章目录

    • 一、前言
      • 1、需求来由
      • 2、showdoc说明
    • 二、部署安装
      • 1、docker安装
      • 2、showdoc安装
      • 3、设置开机自启
    • 三、数据备份
      • 1、docker镜像备份
      • 2、showdoc数据备份
    • 四、数据恢复
      • 1、docker镜像恢复
      • 2、showdoc数据恢复
    • 五、常用操作
      • 1、镜像相关
      • 2、容器相关

一、前言

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/123456

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环境部署

1.2、关闭selinux
修改/etc/selinux/config配置文件,修改配置为SELINUX=disabled

[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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_996562.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓部分手机使用webview加载链接后白屏(Android低版本会出现的问题)

前言 大爷&#xff1a;小伙我这手机怎么打开你们呢这个是白屏什么都不显示。 大娘&#xff1a;小伙我这也是打开你们呢这功能&#xff0c;就是一个白屏什么也没有&#xff0c;你们呢的应用不会有病毒吧。 小伙&#xff1a;我的手机也正常&#xff1b; 同事&#xff1a;我的也正…

Docker容器化解决方案(镜像,容器的操作管理)

Docker镜像管理 搜索官方仓库镜像 docker search [rootlocalhost ~]# docker search nginx NAME DESCRIPTION STARS OFFICIAL nginx Official build of Nginx. …

【位运算】【左右位移】Leetcode 2917. 找出数组中的 K-or 值

【位运算】【左右位移】Leetcode 2917. 找出数组中的 K-or 值 解法 位运算 ---------------&#x1f388;&#x1f388;题目链接 2917. 找出数组中的 K-or 值&#x1f388;&#x1f388;------------------- 【1】<<&#xff1a;左位移运算符 符号位不变&#xff0c;低…

网络编程的学习

思维导图 多路复用代码练习 select完成TCP并发服务器 #include<myhead.h> #define SER_IP "192.168.125.73" //服务器IP #define SER_PORT 8888 //服务器端口号int main(int argc, const char *argv[]) {//1、创建用于监听的套接字int sfd -1;s…

基于GPT-SoVITS少样本语音转换的实时交互TTS

项目地址&#xff1a;https://github.com/DLW3D/GPT-SoVITS 该项目基于 RVC-Boss/GPT-SoVITS-WebUI 前言 GPT-SoVITS-WebUI 实现了使用WebUI的简易小样本语音模拟和文本转语音所需的完整流程&#xff0c;包括数据清洗、文本标注、模型微调、文本转语音。 该项目是对 GPT-SoVI…

动态规划课堂3-----简单多状态问题(买卖股票最佳时机)

目录 引入&#xff1a; 例题1&#xff1a;按摩师&#xff08;打家劫舍I&#xff09; 例题2&#xff1a;打家劫舍II 例题3&#xff1a;删除并获得点数 例题4&#xff1a;粉刷房子 例题5&#xff1a;买卖股票的最佳时机含冷冻 结语&#xff1a; 引入&#xff1a; 相信看到…

uniapp+vue3+vites使用lime-echart问题记录

问题记录 1.vue3使用echarts,H5和微信小程序兼容问题 1.vue3使用echarts,H5和微信小程序兼容问题 问题描述&#xff0c;正常使用echarts&#xff0c;H5正常&#xff0c;小程序报错 报错信息如下 解决方案&#xff1a; 注意要点一&#xff1a;vue3需要使用esm文件 地址&#x…

在ubuntu上安装hadoop完分布式

准备工作 Xshell安装包 Xftp7安装包 虚拟机安装包 Ubuntu镜像源文件 Hadoop包 Java包 一、安装虚拟机 创建ubuntu系统 完成之后会弹出一个新的窗口 跑完之后会重启一下 按住首先用ctrlaltf3进入命令界面&#xff0c;输入root&#xff0c;密码登录管理员账号 按Esc 然后输入 …

解决/sys/kernel/debug/下没有任何文件的

问题&#xff1a; /sys/kernel/debug目录下没有任何信息 解决&#xff1a; 首先检查Debug Filesystem是否选中&#xff0c;其位置是&#xff1a; Kernel hacking -> Compile-time checks and compiler options -> Debug Filesystem 打开configs文件查看是否为y: arch/arm…

2024全国水科技大会之国际合作与新技术、新产品推介会

召集人&#xff1a;中华环保联合会水环境治理专委会 此论坛主要为筛选新技术、新产品&#xff0c;入选企业后续可参与到我会7月的国际考察中&#xff0c;可为企业推荐国际项目合作&#xff01; 一、会议背景 为积极应对“十四五”期间我国生态环境治理面临的挑战&#xff0c;加…

栈【stack】 栈的【STL】运用 【单调栈】 【单调栈】的详细解释【图文讲解】 洛谷P5788 【模板】单调栈 【单调队列】

文章目录 栈的定义栈的STL运用 单调栈 & 单调队列单调栈的详细解释【图文讲解】例题&#xff1a;洛谷P5788 【模板】单调栈code↓洛谷P5788 【模板】单调栈 AC 栈的定义 栈的修改与访问是按照后进先出的原则进行的 栈通常被称为是后进先出&#xff08;last in first out&…

【深度学习笔记】优化算法——随机梯度下降

随机梯度下降 在前面的章节中&#xff0c;我们一直在训练过程中使用随机梯度下降&#xff0c;但没有解释它为什么起作用。为了澄清这一点&#xff0c;我们刚在 :numref:sec_gd中描述了梯度下降的基本原则。本节继续更详细地说明随机梯度下降&#xff08;stochastic gradient d…

2024年【安全员-C证】找解析及安全员-C证模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全员-C证找解析是安全生产模拟考试一点通总题库中生成的一套安全员-C证模拟考试&#xff0c;安全生产模拟考试一点通上安全员-C证作业手机同步练习。2024年【安全员-C证】找解析及安全员-C证模拟考试 1、【多选题】…

【解决】虚幻导入FBX模型不是一个整体

问题&#xff1a; 现在有一个汽车的fbx模型&#xff0c;导入虚幻引擎&#xff0c;导入后变成了很多汽车零件模型。 解决&#xff1a; 把“合并网格体”勾选上&#xff0c;解决问题。

STM32各外设初始化步骤

1、GPIO初始化步骤 1、使能GPIO时钟 2、初始化GPIO的输入/输出模式 3、设置GPIO的输出值或获取GPIO的输入值 GPIO_InitTypeDef GPIO_InitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitStruct.GPIO_Mode GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Pin…

JavaScript基础Ⅱ

目录 第2章 JavaScript基础语法(掌握) 11-JS代码调试 12-JS函数 第3章 JS事件 14-事件的绑定方式 常用事件(了解) 15-常用事件 第4章 JS内置对象(掌握) 16-数组 17-日期 18-数学运算 19-数字 20-全局函数 第2章 JavaScript基础语法(掌握) 11-JS代码调试 12-JS函数…

Kosmos-1: 通用接口架构下的多模态大语言模型

Kosmos-1: 通用接口架构下的多模态大语言模型 FesianXu 20230513 at Baidu Search Team 前言 在大规模语言模型&#xff08;Large Language Model, LLM&#xff09;看似要带来新一番人工智能变革浪潮之际&#xff0c;越来越多尝试以LLM作为通用接口去融入各种任务的工作&#…

Git实战(1)

一, git log 查看提交日志情况 根据 commitId进行版本回退 git reset --hard commitId(commitId可以是一部分,不用完整的ID) 只输出一行信息: git log --pretty=oneline 快速回退: git reset --hard HEAD^ 回退到上一个版本 git reset --hard HEAD^^ 回退到上上个版本 如果…

企业工程项目管理系统源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)

工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&am…

防火墙:网络防御的第一道防线

目录 引言 一、安全技术与防火墙 &#xff08;一&#xff09;安全技术 &#xff08;二&#xff09;防火墙的主要功能与分类 1.防火墙的主要功能 2.防火墙的分类 二、Linux防火墙的基本认识 &#xff08;一&#xff09;Netfilter &#xff08;二&#xff09;防火墙工具…