docker部署书栈网bookstack

bookstack简介

BookStack,基于MinDoc,使用Beego开发的在线文档管理系统,功能类似Gitbook和看云。

在这里插入图片描述

官网: http://www.bookstack.cn

项目地址: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
  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值