bookstack简介
BookStack,基于MinDoc,使用Beego开发的在线文档管理系统,功能类似Gitbook和看云。
项目地址:https://github.com/TruthHun/BookStack
dockerfile地址:https://github.com/willzhang/docker-bookstackcn
docker-compose部署
1、安装docker
curl -fsSL https://get.docker.com | sh && systemctl enable --now docker
2、安装docker-compose
mkdir -p /usr/local/lib/docker/cli-plugins
curl -SL https://get.daocloud.io/docker/compose/releases/download/v2.1.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/lib/docker/cli-plugins/docker-compose
chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
创建docker-compose.yml文件
# cat docker-compose.yml
version: "3"
services:
bookstack:
image: "willdockerhub/bookstack:v2.10_node"
container_name: bookstack
ports:
- "8181:8181"
depends_on:
- db
restart: always
networks:
- bookstack
db:
image: "mysql:8.0.23"
container_name: bookstack_mysql
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: "123456"
MYSQL_DATABASE: "bookstack"
MYSQL_USER: "bookstack"
MYSQL_PASSWORD: "bookstack123"
volumes:
- "mysql-data:/var/lib/mysql"
restart: always
networks:
- bookstack
networks:
bookstack:
volumes:
mysql-data:
3、运行bookstack
docker compose up -d
查看运行的容器,运行了一个mysql数据库和一个bookstack应用:
# docker compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------
bookstack /entrypoint.sh /bookstack/ ... Up 0.0.0.0:8181->8181/tcp
bookstack_mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
注意查看日志,bookstack需要一定时间等待数据库完全启动:
docker logs -f bookstack
bookstack数据默认未进行持久化(目前不清除哪些内容需要保存),所有内容在容器中的/bookstack目录下:
[root@localhost ~ ]# docker exec -it bookstack bash
root@a022b41a3b88:/bookstack# pwd
/bookstack
root@a022b41a3b88:/bookstack# ls -al
total 6164
drwxr-xr-x 1 root root 4096 Mar 19 17:00 .
drwxr-xr-x 1 root root 4096 Mar 19 16:59 ..
-rwxr-xr-x 1 root root 6240692 Oct 13 21:35 BookStack
drwxr-xr-x 3 root root 4096 Mar 19 16:59 cache
drwxr-xr-x 1 root root 4096 Mar 19 16:59 conf
-rw-r--r-- 1 root root 1381 Dec 2 2019 cover.js
-rw-r--r-- 1 root root 3031 Mar 16 2020 crawl.js
-rw-r--r-- 1 root root 16958 Oct 18 2019 favicon.ico
drwxr-xr-x 2 root root 4096 Mar 19 17:00 logs
drwxr-xr-x 28 root root 4096 Oct 13 21:47 static
drw-r--r-- 2 root root 4096 Mar 19 16:59 uploads
drwxr-xr-x 18 root root 4096 Oct 13 21:47 views
drwxr-xr-x 2 root root 4096 Mar 19 16:59 virtualroot
浏览器访问bookstack:http://192.168.1.1:8181
默认管理员账号密码为:
admin/admin888
点击右侧管理员—>我的项目—>添加项目,编辑文档保存并发布,即可阅读书籍内容:
生成和导出PDF
选择右侧管理后台
选择配置管理,将阅读限制改为0
在我的项目中选择一本书执行以下操作即可:
以导出PDF为例:
清理部署环境(警告:加-v参数将删除持久化卷,谨慎操作)
docker-compose down -v
docker部署bookstack
1、运行mysql容器
使用官方最新版本mysql镜像,根据实际情况修改数据库root密码,数据库名及登录用户名密码
docker run -d --name mysql \
--restart always \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=bookstack \
-e MYSQL_USER=bookstack \
-e MYSQL_PASSWORD=bookstack123 \
-v mysql:/var/lib/mysql \
mysql:8.0.23
2、创建bookstack配置文件
方式1:从容器中获取配置文件:
mkdir -p /data/bookstack/
docker run -d --name bookstack --entrypoint='/bin/sh' willdockerhub/bookstack:v2.9_node
docker cp bookstack:/tmp/conf/ /data/bookstack/
docker rm -f bookstack
方式2:从官网获取配置文件
获取对应release版本配置文件:https://github.com/TruthHun/BookStack/tree/v2.9/conf
app.conf.example
oauth.conf.example
oss.conf.example
修改app.conf,这里仅修改了数据库连接信息:
# cat /data/bookstack/conf/app.conf |grep db
db_adapter=mysql
db_host=172.29.118.192
db_port=3306
db_username=bookstack
db_password=bookstack123
db_database=bookstack
注意:db_host为主机IP地址
3、运行bookstack容器
docker run -d --name bookstack \
--restart always \
-p 8181:8181 \
-v /data/bookstack/conf:/bookstack/conf \
willdockerhub/bookstack:v2.9_node
不挂载配置文件的方法
docker run -d --name bookstack \
--restart always \
-p 8181:8181 \
-e DB_HOST=172.29.118.192 \
-e DB_PORT=3306 \
-e DB_USERNAME=bookstack \
-e DB_PASSWORD=bookstack123 \
-e DB_DATABASE=bookstack \
-e RUN_MODE=prod \
willdockerhub/bookstack:v2.9_node
清理部署环境
docker stop bookstack && docker rm bookstack
docker stop mysql && docker rm mysql && docker volume rm mysql