ghcr.io/linuxserver/bookstack:v26.03-ls252
让 AI 帮你使用轩辕镜像? · 展开查看说明
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
LinuxServer.io团队为您带来另一个容器版本,其特点包括:
- 定期且及时的应用更新
- 简单的用户映射(PGID、PUID)
- 带有s6 overlay的自定义基础镜像
- 每周基础操作系统更新,整个LinuxServer.io生态系统共享通用层,以最小化空间占用、停机时间和带宽
- 定期安全更新
在以下渠道找到我们:
- 博客 - 关于如何使用我们的容器的所有内容,包括操作指南、观点等更多信息!
- *** - 与社区和团队进行实时支持/聊天。
- Discourse - 在我们的社区论坛上发帖。
- https://github.com/linuxserver - 查看我们所有仓库的源代码。
- Open Collective - 欢迎通过***或为我们的预算做出贡献来支持我们
https://github.com/linuxserver/docker-bookstack
Bookstack 是一个免费开源的Wiki,旨在创建美观的文档。它配备了简单但功能强大的WYSIWYG编辑器,使团队能够轻松创建详细且有用的文档。
BookStack 基于SQL构建,并为偏好Markdown的用户提供了编辑器,旨在让文档编写从繁琐任务转变为愉快体验。
有关BookStack的更多信息,请访问其网站:[***]
支持的架构
我们利用docker manifest实现多平台支持。更多信息可查看docker文档https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list%E5%92%8C%E6%88%91%E4%BB%AC%E7%9A%84%E5%85%AC%E5%91%8A%E6%AD%A4%E5%A4%84%E3%80%82
只需拉取 lscr.io/linuxserver/bookstack:latest 即可获取适合您架构的正确镜像,您也可以通过标签拉取特定架构的镜像。
此镜像支持的架构如下:
| 架构 | 是否可用 | 标签 |
|---|---|---|
| x86-64 | ✅ | amd64-\ |
| arm64 | ✅ | arm64v8-\ |
应用设置
默认用户名为 ***,密码为 password,通过 http:// :6875 访问容器。
此应用依赖于MariaDB数据库,可以是您已有的数据库或新数据库。如果您还没有,我们提供了镜像:https://github.com/linuxserver/docker-mariadb%E3%80%82
如果您打算在子文件夹反向代理(如我们的SWAG容器或Traefik)后使用此应用,您需要确保 APP_URL 环境变量设置为您的外部域名,否则应用将无法正常工作。
BookStack的文档可在 [***] 找到。
BookStack 文件和目录路径
此容器确保BookStack的某些应用文件和文件夹(如用户文件上传文件夹)保留在 /config 文件夹中,以便在 /config 容器路径作为卷挂载时保持持久化并可访问。在参考BookStack文档时,您可能需要了解这些文件和文件夹相对于非容器化BookStack安装的使用方式。
以下是容器 /config 路径与BookStack安装目录中相对路径的映射:
- 容器
/config路径 => BookStack 相对路径 /config/www/.env=>.env/config/log/bookstack/laravel.log=>storage/logs/laravel.log/config/backups/=>storage/backups//config/www/files/=>storage/uploads/files//config/www/images/=>storage/uploads/images//config/www/themes/=>themes//config/www/uploads/=>public/uploads/
修改 APP_URL
如果在初始安装后修改 APP_URL,您应从主机终端运行以下命令以更新数据库中的URL条目:
docker exec -it bookstack php /app/www/artisan bookstack:update-url ${OLD_URL} ${NEW_URL}
高级用户(完全控制 .env 文件)
如果您希望使用BookStack的额外功能(如电子邮件、LDAP等),您需要设置额外的环境变量,或根据BookStack文档的指导创建自己的 .env 文件。
容器会将示例 .env 文件复制到主机系统的 /config/www/.env 供您使用。
只读操作
此镜像可以在只读容器文件系统下运行。详情请阅读文档。
注意事项
/tmp必须挂载为tmpfs
| 参数 | 功能 |
|---|---|
-p 6875:80 | http/s Web界面。 |
-e PUID=1000 | 用户ID - 详见下文说明 |
-e PGID=1000 | 组ID - 详见下文说明 |
-e TZ=Etc/UTC | 指定要使用的时区,参见此列表。 |
-e APP_URL= | 应用程序的访问协议、IP/URL和端口(例如:http://192.168.1.1:6875 或 https://bookstack.mydomain.com) |
-e APP_KEY= | 会话加密密钥。您需要通过 docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey 生成。 |
-e DB_HOST= | 数据库实例主机名 |
-e DB_PORT=3306 | 数据库端口 |
-e DB_USERNAME= | 数据库用户 |
-e DB_PASSWORD= | 数据库密码(至少4个字符,非字母数字密码必须正确转义。) |
-e DB_DATABASE= | 数据库名称 |
-e QUEUE_CONNECTION= | 设置为 database 以启用异步操作(如发送电子邮件或触发Webhook)。参见文档。 |
-v /config | 持久化配置文件 |
--read-only=true | 以只读文件系统运行容器。请阅读文档。 |
从文件设置环境变量(Docker secrets)
您可以通过使用特殊前缀 FILE__ 从文件中设置任何环境变量。
例如:
-e FILE__MYVAR=/run/secrets/mysecretvariable
这将根据 /run/secrets/mysecretvariable 文件的内容设置环境变量 MYVAR。
运行应用程序的Umask
对于我们所有的镜像,您可以使用可选的 -e UMASK=022 设置来覆盖容器内启动的服务的默认umask设置。
请记住,umask不是chmod,它根据其值减去权限,而不是添加权限。在请求支持之前,请先阅读此处。
用户/组标识符
使用卷(-v 标志)时,主机操作系统和容器之间可能会出现权限问题,我们通过允许您指定用户 PUID 和组 PGID 来避免此问题。
确保主机上的所有卷目录都归您指定的同一用户所有,这样任何权限问题都会神奇地消失。
在此示例中 PUID=1000 和 PGID=1000,要查找您的ID,请使用 id your_user,如下所示:
id your_user
示例输出:
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
Docker Mods
我们发布了各种 https://github.com/linuxserver/docker-mods%EF%BC%8C%E4%BB%A5%E5%9C%A8%E5%AE%B9%E5%99%A8%E5%86%85%E5%90%AF%E7%94%A8%E9%A2%9D%E5%A4%96%E5%8A%9F%E8%83%BD%E3%80%82%E5%8F%AF%E7%94%A8%E4%BA%8E%E6%AD%A4%E9%95%9C%E5%83%8F%E7%9A%84Mods%E5%88%97%E8%A1%A8%EF%BC%88%E5%A6%82%E6%9C%89%EF%BC%89%E4%BB%A5%E5%8F%8A%E5%8F%AF%E5%BA%94%E7%94%A8%E4%BA%8E%E6%88%91%E4%BB%AC%E4%BB%BB%E4%BD%95%E9%95%9C%E5%83%8F%E7%9A%84%E9%80%9A%E7%94%A8Mods%EF%BC%8C%E5%8F%AF%E9%80%9A%E8%BF%87%E4%B8%8A%E6%96%B9%E7%9A%84%E5%8A%A8%E6%80%81%E5%BE%BD%E7%AB%A0%E8%AE%BF%E9%97%AE%E3%80%82
支持信息
- 容器运行时的Shell访问:
docker exec -it bookstack /bin/bash
- 实时监控容器日志:
docker logs -f bookstack
- 容器版本号:
docker inspect -f '{{ index .Config.Labels "build_version" }}' bookstack
- 镜像版本号:
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/bookstack:latest
更新信息
我们的大多数镜像是静态的、版本化的,需要更新镜像并重新创建容器才能更新内部的应用程序。除某些例外情况(在相关readme.md中注明),我们不建议或支持在容器内更新应用程序。请参考上文的应用程序设置部分,了解是否推荐对此镜像进行更新。
以下是更新容器的说明:
通过Docker Compose
- 更新镜像:
- 所有镜像:
docker-compose pull
- 单个镜像:
docker-compose pull bookstack
- 更新容器:
- 所有容器:
docker-compose up -d
- 单个容器:
docker-compose up -d bookstack
- 您还可以删除旧的悬空镜像:
docker image prune
通过Docker Run
- 更新镜像:
docker pull lscr.io/linuxserver/bookstack:latest
- 停止运行中的容器:
docker stop bookstack
- 删除容器:
docker rm bookstack
- 使用上述相同的docker run参数重新创建新容器(如果正确映射到主机文件夹,您的
/config文件夹和设置将被保留) - 您还可以删除旧的悬空镜像:
docker image prune
镜像更新通知 - Diun(Docker镜像更新通知器)
[!TIP] 我们推荐使用 Diun 接收更新通知。不推荐或支持使用其他工具自动无人值守更新容器。
本地构建
如果您想对这些镜像进行本地修改以用于开发目的或自定义逻辑:
git clone https://github.com/linuxserver/docker-bookstack.git
cd docker-bookstack
docker build \
--no-cache \
--pull \
-t lscr.io/linuxserver/bookstack:latest .
可以使用 lscr.io/linuxserver/qemu-static 在x86_64硬件上构建ARM变体,反之亦然:
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
注册后,您可以使用 -f Dockerfile.aarch64 指定要使用的Dockerfile。
- 29.04.26: - 切换为从 Codeberg 拉取发布版本。
- 28.12.25: - 基于 Alpine 3.23 重新构建。
- 05.07.25: - 基于 Alpine 3.22 重新构建。
- 04.01.25: - 添加 php-opcache。
- 17.12.24: - 基于 Alpine 3.21 重新构建。
- 11.10.24: - 默认使用环境配置而非 .env 文件配置。
- 06.09.24: - 添加 php-exif 以读取图片 EXIF 数据。
- 27.05.24: - 基于 Alpine 3.20 重新构建。现有用户应更新其 nginx 配置以避免 http2 弃用警告。
- 25.01.24: - 现有用户应更新:site-confs/default.conf - 清理默认站点配置。
- 23.12.23: - 基于 Alpine 3.19 和 php 8.3 重新构建。
- 31.10.23: - 进一步清理 sed 替换。
- 07.06.23: - 添加 mariadb-client 以支持 bookstack-system-cli。
- 25.05.23: - 基于 Alpine 3.18 重新构建,弃用 armhf。
- 13.04.23: - 将 ssl.conf 包含移至 default.conf。
- 01.03.23: - 添加 php iconv。
- 19.01.23: - 基于 alpine 3.17 和 php8.1 重新构建。
- 16.01.23: - 将
.env值用引号包裹。 - 05.01.23: - 修复数据库密码设置(sed 转义
&)。 - 21.12.22: - 当环境变量更新时,更新 .env 文件中的数据库信息。
- 10.10.22: - 移除导致部分用户出现问题的密码转义逻辑。
- 20.08.22: - 基于 alpine 3.15 和 php8 重新构建。重构 nginx 配置(参见变更公告)。
- 14.03.22: - 添加符号链接以支持主题。
- 11.07.21: - 基于 Alpine 3.14 重新构建。
- 12.01.21: - 从 0.31.0 版本开始,移除未使用的依赖项。
- 17.12.20: - 使 APP_URL 变量成为必填项(上游变更)。
- 17.09.20: - 基于 alpine 3.12 重新构建。修复 APP_URL 设置。默认将 php post 最大大小和上传最大文件大小提升至 100MB。
- 19.12.19: - 基于 alpine 3.11 重新构建。
- 26.07.19: - 在等待上游修复期间使用旧版本的 tidyhtml。
- 28.06.19: - 基于 alpine 3.10 重新构建。
- 14.06.19: - 添加 wkhtmltopdf 到镜像以支持 PDF 渲染。
- 20.04.19: - 基于 Alpine 3.9 重新构建,添加 MySQL 初始化逻辑。
- 22.03.19: - 切换到新的基础镜像,迁移至 arm32v7 标签。
- 20.01.19: - 添加 php7-curl
- 04.11.18: - 添加 php7-ldap
- 15.10.18: - 更改高级用户的功能
- 08.10.18: - 高级模式、符号链接更改、sed 修复、文档更新、添加部分 composer 文件
- 23.09.28: - 更新预发布版本
- 02.07.18: - 初始发布。
镜像拉取常见问题
功能
排错
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务