zeigren/bookstack Docker 镜像
BookStack的Docker部署方案,包含Compose、Swarm使用示例,支持Caddy、NGINX、Traefik等Web服务器及反向代理。
BookStack Docker 部署栈
链接
https://hub.docker.com/r/zeigren/bookstack
https://ghcr.io/zeigren/bookstack_docker
https://github.com/Zeigren/bookstack_docker
主仓库
项目
标签
- latest
- 21.05.3
- 21.05.2
- 21.05.1
- 21.04.2
- 0.31.8
- 0.30.1
- 0.30.0
- 0.29.3
- 0.29.0
- 0.28.3
- 0.28.2
- 0.28.0
- 0.27.5
- 0.27.4
- 0.26.2
- 0.26.1
- 0.26.0
- 0.25.5
技术栈
- PHP 8.0-fpm-alpine - BookStack 应用
- Caddy 或 NGINX - Web 服务器
- MariaDB - 数据库
- Redis Alpine - 缓存服务
使用方法
使用 https://docs.docker.com/compose/ 或 https://docs.docker.com/engine/swarm/ 进行部署。容器可从 Docker Hub 和 GitHub Container Registry 获取。
提供使用 https://caddyserver.com/ 或 NGINX 作为 Web 服务器的示例,以及使用 Caddy、NGINX 或 https://traefik.io/traefik/ 处理 HTTPS 的示例(Traefik 示例还包含反向代理配置)。NGINX 相关示例位于 nginx 文件夹中。
推荐建议
推荐使用 Caddy 作为 Web 服务器,可直接处理 HTTPS 或与 Traefik 配合使用,两者均原生支持 ACME,能能自动从 Let's Encrypt 获取 HTTPS 证书,或为本地使用生成自签名证书。
如果条件允许,建议使用 https://docs.docker.com/engine/swarm/ 而非 https://docs.docker.com/compose/,因其支持 https://docs.docker.com/engine/swarm/secrets/ 和 https://docs.docker.com/engine/swarm/configs/。
若 Caddy 不适用或追求性能,可参考 NGINX 示例。虽未进行性能测试,但 NGINX 具有高度可配置性,在用户量较大时可能通过优化获得更好性能(详见下文性能调优部分)。
配置说明
配置通过在 .yml 文件中设置环境变量实现。更多用于配置 BookStack 和 PHP 的环境变量可在 docker-entrypoint.sh 中找到,Caddy 相关配置可在 bookstack_caddyfile 中查看。
设置 DOMAIN 变量会影响 Caddy 使用的协议:HTTP、带自签名证书的 HTTPS,或带 Let's Encrypt/ZeroSSL 证书的 HTTPS。详见 Caddy https://caddyserver.com/docs/automatic-https。
容器启动后,可使用用户名 admin@admin.com 和密码 password 登录。
https://docs.docker.com/engine/swarm/
推荐配合 https://traefik.io/traefik/) 作为反向代理使用,示例文件 traefik.yml 已包含(非必需)。
需创建相应的 https://docs.docker.com/engine/swarm/secrets/ 和 https://docs.docker.com/engine/swarm/configs/。
部署命令:
bashdocker stack deploy --compose-file docker-swarm.yml bookstack
https://docs.docker.com/compose/
启动命令:
bashdocker-compose up -d
通过 127.0.0.1:9080 访问。
文件上传配置
设置 POST_MAX_SIZE、UPLOAD_MAX_FILESIZE 和 MEMORY_LIMIT 变量以配置最大文件上传大小(MEMORY_LIMIT 至少应为 128M)。详见 BookStack 文档。
性能调优
Web 服务器默认设置相关 HTTP 头,使浏览器尽可能长时间缓存文件,同时要求浏览器检查文件是否更新,以在避免缓存旧内容的前提下利用缓存优势。若内容不常变化或可通过其他方式失效,可修改此行为以减少请求次数。
默认 PHP 配置根据需求扩展子进程,适合低资源和轻量使用场景。将其设置为动态或静态模式可提升性能。可在 docker-entrypoint.sh 的 "PHP Configuration" 部分查看并设置相关调优参数。
灵感来源
本项目是 https://github.com/solidnerd/docker-bookstack 的分支,而后者又是 https://github.com/Kilhog/docker-bookstack 的分支。
镜像拉取方式
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
轩辕镜像加速拉取命令点我查看更多 bookstack 镜像标签
DockerHub 原生拉取命令
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务