Sign inSign up

willdockerhub/bookstack

By willdockerhub

Updated about 2 years ago

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

Image
16

4.9K

willdockerhub/bookstack repository overview

bookstack简介

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

在这里插入图片描述

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

项目地址:https://github.com/TruthHun/BookStack

下面介绍使用docker部署bookstack,由于依赖过多,镜像超过1G(无奈)。

dockerfile地址:https://github.com/willzhang/docker-bookstackcn

docker-compose部署

创建docker-compose文件docker-compose.yml

# cat docker-compose.yml
version: "3"
  
services:
  bookstack:
    image: "willdockerhub/bookstack:v2.9_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:

安装docker、docker-compose,然后运行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

Tag summary

Content type

Image

Digest

sha256:0b8b727c8

Size

1.2 GB

Last updated

about 2 years ago

docker pull willdockerhub/bookstack:v2.12