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

文章目录

    • 一、前言
      • 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.mzph.cn/news/727143.shtml

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

相关文章

Apache POI Excel的读写

1、 POI介绍 Apache POI是用Java编写的免费开源的跨平台的Java API&#xff0c;Apache POI提供API给Java程 序对Microsoft Office格式档案读和写的功能&#xff0c;其中使用最多的就是使用POI操作Excel文 件。 jxl&#xff1a;专门操作Excel maven坐标&#xff1a; POI结构:…

【Vue3-vite】动态导入路由

route文件结构 router moduleindex.ts 路由定义 // 需要导入的路由如下&#xff1a; const routes [{path: /manage,name: manage,component: () > import(/views/home/index.vue),children: manageRoutes,}]index.ts实现从module中自动导入 // 动态导入 const routeFil…

【信息系统项目管理师】--【信息技术发展】--【新一代信息技术及应用】--【虚拟现实】

文章目录 第二章 信息技术发展2.2 新一代信息技术及应用2.2.6 虚拟现实1.技术基础2.关键技术3.应用和发展 第二章 信息技术发展 信息技术是在信息科学的基本原理和方法下&#xff0c;获取信息、处理信息、传输信息和使用信息的应用技术总称。从信息技术的发展过程来看&#xff…

封关了,不仅封掉了港漂们方便的回家之路

封关不仅堵住了港漂回国的便捷途径&#xff0c;也堵住了港漂修理内地大大小小的电器的路。 香港当然有维修工。 听邻居说修一个漏水的水龙头要港币1000元&#xff0c;检查微波炉要港币600元。 更换主板需要4000元&#xff0c;比新机还贵。 收回坏掉的洗衣机修理费是14000元&am…

专家解读:2024年十大项目管理工具综合排名与评价

2024年涌现出一批新的项目管理工具&#xff0c;各具特色的功能和设计为企业解决了诸多的管理难题。今天我们就来盘点2024年的十款项目管理工具Zoho Projects、AgileMaster、PlanItAll、CommuniQ、WorkFlowRanger、GanttGenius、RiskAssessor、TeamHarmony、BudgetBoss、CloudCo…

Qt6.6搭建WebAssembly

1.首先安装python &#xff0c; 链接&#xff1a;https://www.python.org/ 2.下载并安装qt6. 3.克隆emsdk工程 3.1 进入emsdk目录&#xff0c;然后更新emsdk代码 3.2 下载并安装最新的SDK工具。&#xff08;C:\Qt\emsdk>emsdk install --global latest&#xff09; 3.3…

【C++】C/C++内存管理详解

个人主页 &#xff1a; zxctscl 文章封面来自&#xff1a;艺术家–贤海林 如有转载请先通知 目录 1. 前言2. C/C内存分布3. C语言中动态内存管理方式4. C中动态内存管理4.1 new/delete操作内置类型4.2 new和delete操作自定义类型 5. operator new与operator delete函数5.1 oper…

算法沉淀——动态规划之其它背包问题与卡特兰数(leetcode真题剖析)

算法沉淀——动态规划之其它背包问题与卡特兰数 二维费用的背包问题01.一和零02.盈利计划 似包非包组合总和 Ⅳ 卡特兰数不同的二叉搜索树 二维费用的背包问题 01.一和零 题目链接&#xff1a;https://leetcode.cn/problems/ones-and-zeroes/ 给你一个二进制字符串数组 strs…

大语言模型LLM学习梳理

一、介绍 今天问了下晓宇关于LLM的知识&#xff0c;学到了很多&#xff0c;总结下。 二、开源的大型语言模型&#xff08;LLM&#xff09;包含哪些东西&#xff1f; 模型包含两块内容&#xff1a; 框架。 框架就是函数和代码逻辑的组合。 可能有多层&#xff0c;每层可能有很…

【网络】主机连接 TCP 三次握手

【网络】主机连接 TCP 三次握手 一、TCP连接3次握手二、TCP连接4次挥手三、为什么tcp要三次握手&#xff0c;两次行不四、为什么TCP挥手需要4次五、Netstat命令的连接状态包括:六、练习题 一、TCP连接3次握手 1、建立连接的时候是3次握手&#xff0c;客户端向服务器端发送SYN&…

数据结构界的终极幻神----树

目录 一.数的概念和分类 种类 二.重点概念 哈希树: 二叉树的线索化 什么是线索化 为什么要线索化 特殊的查找树 完全二叉树 三.手撕完全二叉树(堆) 重点讲解 向上搜索算法 向下搜索算法 一.数的概念和分类 树&#xff08;tree&#xff09;是包含 n(n≥0) [2] 个节…

Shopee 虾皮运营六大核心技巧,下一个大卖就是你

对于新手卖家来说&#xff0c;店铺运营是头等大事。运营得当就能获取相应的收益&#xff0c;那么Shopee 虾皮运营的核心技巧是什么呢&#xff1f;今天给大家分享6⃣大核心技巧&#xff0c;学会了下个大卖就是你。 Shopee 虾皮运营六大核心技巧 1️⃣ 分时段上新 &#x1f4cc;…

3Dmax中VR渲染太阳光渲染参数怎么设置?渲染100云渲染助力

我们用3Dmax建模时一些场景会用到太阳光&#xff0c;那么渲染参数是如何设置的呢&#xff1f; 我们一起来看看&#xff0c;直接上图 以上就是详细的参数设置&#xff0c;大家可以用做参考&#xff0c;如果本地渲染慢的朋友可以考虑使用云渲染100 机器多&#xff0c;渲染稳定不…

android 快速实现 垂直SeekBar(VerticalSeekBar)

1.话不多说上源码&#xff1a; package com.example.widget;import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.view.MotionEvent;/*** Class to create a vertical slider*/ public class VerticalSeekBar…

redis进阶以及springboot连接使用redis

redis进阶--Geospatial 地理位置的缩写&#xff0c;可以表示一个区域的二维坐标&#xff0c;redis提供了经纬度设置&#xff0c;查询&#xff0c;范围查询&#xff0c;距离查询&#xff0c;经纬度hash等操作。 使用场景 在地图中可以用来计算距离我们最近的门店。 redis进阶…

基于51单片机的公交ic卡系统设计

目 录 摘 要 I Abstract II 引 言 1 1 总体方案设计 3 1.1 方案选择 3 1.2 硬件选择 3 1.3 系统工作原理 4 1.4 总体方案确定 5 2 系统硬件电路设计 6 2.1 主控模块电路设计 6 2.2 电源电路设计 8 2.3 显示电路模块设计 8 2.4 报警模块电路设计 10 2.5 RC522刷卡模块 10 2.6 独…

下属OKR与上级OKR对齐时,有几种方法?

下属的OKR&#xff08;Objectives and Key Results&#xff0c;即目标与关键成果&#xff09;与上级的OKR对齐&#xff0c;是确保组织目标一致性和团队协同工作的关键步骤。以下是几种常用的对齐方法&#xff1a; 直接映射法&#xff1a;下属的OKR直接反映并支撑上级的OKR。例如…

【二】【SQL Server】如何运用SQL Server中查询设计器通关数据库期末查询大题

教学管理系统201703153 教学管理系统数据库展示 成绩表展示 课程表展示 学生表展示 院系表展示 一、基本操作 设置复合主键 设置其他表的主键 设置字段取值范围 二、简单操作 第一题 第二题 第三题 第四题 结尾 最后&#xff0c;感谢您阅读我的文章&#xff0c;希望这些内容能…

(黑马出品_04)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

&#xff08;黑马出品_04&#xff09;SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术异步通信 今日目标1.初识MQ1.1.同步和异步通讯1.1.1.同步通讯1.1.2.异步通讯 1.2.技术对比 2.快速入门2.1.安装RabbitMQ2.1.1.单机部署(1).下载镜像方式…

SICP解读指南:深度阅读 “计算机领域三巨头” 之一(文末送书)

&#x1f308;个人主页&#xff1a;聆风吟_ &#x1f525;系列专栏&#xff1a;Linux实践室、网络奇遇记 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. 书籍介绍1.1 SICP侧重点1.2 SICP章节介绍 二. 书籍推荐2.1 书籍介绍2.2 推…