Docker项目实战】使用Docker部署Docmost文档管理工具
一、Docmost介绍
1.1 Docmost 简介
Docmost
是一款开源的协作维基和文档管理软件,它旨在为团队提供一个集中化、高效且易于使用的平台来创建、共享以及管理信息。作为 Confluence 和 Notion 的开源替代品,Docmost 提供了强大的功能集以满足现代企业和组织对于知识管理和协同工作的需求。
1.2 Docmost特点
- 实时协作:允许多名用户同时编辑同一个文档或页面,极大提高了工作效率。
- 图表支持:集成Draw.io, Excalidraw 以及 Mermaid等工具,方便用户创建流程图、架构图等各类图表。
- 空间管理:根据项目或者部门划分不同的工作区(Space),便于内容组织与访问控制。
- 权限管理:细粒度的权限设置,可以精确到每个页面甚至是特定部分,确保信息安全。
- 团体协作:支持团队内成员间的无缝沟通与合作,促进信息流通。
- 评论系统:允许用户在文档上直接添加注释或反馈,促进了讨论和想法交流。
- 版本历史:自动保存所有更改记录,并允许恢复至任意历史版本,保证了数据安全。
- 全文搜索:强大的搜索引擎能够快速定位所需信息,提高检索效率。
- 文件附件:支持多种格式文件上传作为附件,丰富了文档内容的表现形式。
1.3 主要使用场景
- 企业内部知识库:建立公司政策、操作手册等重要资料库,方便员工查询学习。
- 项目管理:围绕具体项目创建专门的工作区,跟踪进度、分配任务并记录会议纪要。
- 教育领域:教师与学生之间共享课程材料、作业提交及评价反馈。
- 非营利组织:协调志愿者活动计划、记录筹款进展等非正式但重要的信息。
- 远程工作支持:为分布式团队提供一个中心化的交流平台,增强团队凝聚力。
- 技术文档编写:软件开发者撰写API文档、代码示例等技术性文档时非常有用。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。
hostname | IP地址 | 操作系统版本 | Docker版本 | 镜像版本 |
---|---|---|---|---|
jeven01 | 192.168.3.88 | Ubuntu 22.04.1 LTS | 27.1.1 | latest |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署 Docmost文档管理工具。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven01:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2024-09-09 10:43:35 CST; 3 weeks 5 days ago
Docs: https://docs.docker.com
Main PID: 695 (dockerd)
Tasks: 135 (limit: 9387)
Memory: 4.0G
CPU: 46min 46.854s
CGroup: /system.slice/docker.service
├─ 695 /usr/bin/dockerd
├─ 846 containerd --config /var/run/docker/containerd/containerd.toml
3.2 检查Docker版本
检查Docker版本
root@jeven01:~# docker -v
Docker version 27.1.1, build 6312585
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven01:~# docker compose version
Docker Compose version v2.19.1
四、下载Docmost镜像
拉取Docmost相关镜像,如下所示:
docker pull docmost/docmost:latest
docker pull postgres:16-alpine
docker pull redis:7.2-alpine
五、部署Docmost应用
5.1 创建部署目录
- 创建部署目录
mkdir -p /data/docmost && cd /data/docmost
5.2 编辑部署文件
- 在部署目录下,创建docker-compose.yaml文件,其中宿主机映射端口等可以自定义配置。
- 注意环境变量中的
APP_URL
值为宿主机IP地址+宿主机端口,如果填写错误则会导致容器启动失败。- 注意环境变量中的
APP_SECRET
值将默认的进行修改,否则Docmost会启动失败,容器日志会提示报错。
version: '3'
services:
docmost:
image: docmost/docmost:latest
depends_on:
- db
- redis
environment:
APP_URL: 'http://192.168.3.88:3000'
APP_SECRET: 'K8dCmZnXa3LQbPfRtGjW'
DATABASE_URL: 'postgresql://docmost:STRONG_DB_PASSWORD@db:5432/docmost?schema=public'
REDIS_URL: 'redis://redis:6379'
ports:
- "3000:3000"
restart: unless-stopped
volumes:
- docmost:/app/data/storage
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: docmost
POSTGRES_USER: docmost
POSTGRES_PASSWORD: STRONG_DB_PASSWORD
restart: unless-stopped
volumes:
- db_data:/var/lib/postgresql/data
redis:
image: redis:7.2-alpine
restart: unless-stopped
volumes:
- redis_data:/data
volumes:
docmost:
db_data:
redis_data:
5.3 创建Docmost容器
执行以下命令,创建Docmost容器。
root@jeven01:/data/docmost# docker compose up -d
[+] Running 7/7
✔ Network docmost_default Created 0.1s
✔ Volume "docmost_redis_data" Created 0.0s
✔ Volume "docmost_docmost" Created 0.0s
✔ Volume "docmost_db_data" Created 0.0s
✔ Container docmost-db-1 Started 0.4s
✔ Container docmost-redis-1 Started 0.5s
✔ Container docmost-docmost-1 Started 0.7s
5.4 查看Docmost容器状态
检查Docmost容器状态状态,确保Docmost容器正常启动。
root@jeven01:/data/docmost# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d14e3b4ec4bc docmost/docmost:latest "docker-entrypoint.s…" 3 seconds ago Up 2 seconds 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp docmost-docmost-1
9319a36cd212 redis:7.2-alpine "docker-entrypoint.s…" 3 seconds ago Up 2 seconds 6379/tcp docmost-redis-1
5bf3b742be5e postgres:16-alpine "docker-entrypoint.s…" 3 seconds ago Up 2 seconds 5432/tcp docmost-db-1
5.5 查看Docmost容器日志
检查Docmost容器日志,确保Docmost服务正常运行。
docker compose logs
六、访问Docmost服务
6.1 访问Docmost初始页
访问地址:http://192.168.3.88:3000,将IP替换为自己服务器IP地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。
6.2 注册账号
在Docmost初始页,自定义设置账号密码信息。
七、上传文档
7.1 进入工作空间
点击“General”,进入名称为General的工作空间。
7.2 新建页面
点击Pages旁边的“+”号,我们新建一个空白页面。
编辑文章内容,如下所示:
回到home首页,可以看到刚刚编辑的文章。
八、总结
通过Docker Compose部署Docmost文档管理工具,我们能够一键启动和管理多个相关联的容器,简化了服务的配置和维护。使用
docker-compose.yml
文件定义了所有必要的服务、网络和卷,确保了环境的一致性和可复现性。这种部署方式不仅提高了开发和测试效率,还使得生产环境的部署变得更加简单和可靠。最终,团队可以更专注于内容创作与协作,而无需担心底层基础设施的复杂性。
- 点赞
- 收藏
- 关注作者
评论(0)