如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://linuxserver.io 团队为您带来全新的容器版本,具备以下特性:
您可以通过以下渠道找到我们:
https://codeberg.org/bookstack/bookstack 是一款免费开源的 Wiki 程序,专为制作精美的技术文档设计。它搭载了简单但功能强大的所见即所得(WYSIWYG)编辑器,可让团队轻松创建详尽实用的文档内容。
BookStack 基于 SQL 驱动,同时为偏好纯文本编辑的用户内置了 Markdown 编辑器,其设计初衷就是让文档创作变成一件愉悦的事,而非繁琐的负担。
如需了解 BookStack 的更多信息,可访问官方网站查看详情:[***]
我们通过 Docker Manifest 实现多平台镜像的自动识别适配,相关细节可查阅 Docker 官方https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list,以及我们发布的https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/。
直接拉取镜像 lscr.io/linuxserver/bookstack:latest 即可自动获取与当前系统架构匹配的镜像,您也可以通过指定标签拉取特定架构的镜像。
该镜像支持的架构如下:
| 架构 | 可用性 | 标签前缀 |
|---|---|---|
| x86-64 | ✅ | amd64- |
| arm64 | ✅ | arm64v8- |
默认用户名是 admin@admin.com,默认密码为 password,启动容器后可通过 http://<主机地址>:6875 访问服务。
该应用依赖 MariaDB 数据库,您可以使用现有数据库实例,也可以全新部署。如果您尚未准备好数据库镜像,我们提供了官方维护的 MariaDB 容器镜像,获取地址为 https://github.com/linuxserver/docker-mariadb。
如果您计划将该应用部署在子路径反向代理后方,例如搭配我们的 SWAG 容器或 Traefik 使用,请务必将 APP_URL 环境变量设置为您的外部访问域名,否则服务将无法正常工作。
BookStack 的完整官方文档可访问 [***] 获取。
本容器将 BookStack 的部分核心应用文件和文件夹(例如用户上传文件目录)统一存放在 /config 路径下,当您将容器内的 /config 路径绑定为数据卷时,这些数据即可持久化保留且始终可访问。当您参考 BookStack 官方文档操作时,可能需要了解容器内路径与原生非容器化 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,需要在主机终端执行以下命令更新数据库中存储的 URL 记录:
docker exec -it bookstack php /app/www/artisan bookstack:update-url ${OLD_URL} ${NEW_URL}
如果您需要启用 BookStack 的扩展功能,例如邮件服务、LDAP 登录等,需要参考 BookStack 官方文档配置额外的环境变量,或是自行编辑 .env 文件完成配置。
容器首次启动时会自动将示例 .env 文件复制到主机的 /config/www/.env 路径下,您可以直接基于该文件进行自定义修改。
该镜像支持以容器文件系统只读模式运行,具体配置方法请参考https://docs.linuxserver.io/misc/read-only/。
/tmp 路径挂载为 tmpfs您可以通过 docker-compose 或 docker 命令行两种方式快速基于本镜像创建容器。
[!NOTE] 除非参数标注为「可选」,否则所有参数均为必填项,必须为其指定有效值。
---
services:
bookstack:
image: lscr.io/linuxserver/bookstack:latest
container_name: bookstack
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- APP_URL=
- APP_KEY=
- DB_HOST=
- DB_PORT=3306
- DB_USERNAME=
- DB_PASSWORD=
- DB_DATABASE=
- QUEUE_CONNECTION= #optional
volumes:
- /path/to/bookstack/config:/config
ports:
- 6875:80
restart: unless-stopped
docker run -d \
--name=bookstack \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-e APP_URL= \
-e APP_KEY= \
-e DB_HOST= \
-e DB_PORT=3306 \
-e DB_USERNAME= \
-e DB_PASSWORD= \
-e DB_DATABASE= \
-e QUEUE_CONNECTION= `#optional` \
-p 6875:80 \
-v /path/to/bookstack/config:/config \
--restart unless-stopped \
lscr.io/linuxserver/bookstack:latest
容器的运行行为通过启动时传入的参数进行配置,即上文中展示的各类配置项。这类参数使用冒号分隔,分别对应「容器内部资源」与「主机侧映射规则」。以 -p 8080:80 为例,该配置表示将容器内部的 80 端口暴露至主机侧,可通过主机 IP 的 8080 端口对外访问容器服务。
| 参数 | 说明 |
|---|---|
-p 6875:80 | http/https Web 界面 |
-e PUID=1000 | 用户 ID,详见下文说明 |
-e PGID=1000 | 用户组 ID,详见下文说明 |
-e TZ=Etc/UTC | 指定使用的时区,可查阅时区数据库列表 |
-e APP_URL= | 应用对外提供服务的协议、IP/域名与端口,例如 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 | 以只读文件系统运行容器,请https://docs.linuxserver.io/misc/read-only/了解详情 |
你可以使用特殊前缀 FILE__,从文件读取内容来设置任意环境变量。
示例如下:
-e FILE__MYVAR=/run/secrets/mysecretvariable
该配置会将环境变量 MYVAR 的值设置为 /run/secrets/mysecretvariable 文件的内容。
我们所有镜像都支持通过可选参数 -e UMASK=022 覆盖容器内启动服务的默认 umask 设置。
请注意 umask 不等于 chmod,它的作用是从原有权限值中减去对应权限,不会新增权限。在寻求技术支持前,请先参考 umask ***说明 了解详情。
使用卷(-v 参数)时,宿主机操作系统与容器之间可能出现权限问题,我们提供指定用户 PUID 和用户组 PGID 的功能来规避该问题。
请确保宿主机上所有映射卷目录的所属用户与你指定的用户一致,即可彻底消除权限问题。
以上文的 PUID=1000 和 PGID=1000 为例,你可以使用 id your_user 命令查询自己的用户与用户组 ID,操作如下:
id your_user
输出示例:
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
我们发布了多种 https://github.com/linuxserver/docker-mods,用于为容器扩展额外功能。当前镜像支持的 Mod 列表(如有)以及适用于所有 LinuxServer 镜像的通用 Mod,均可通过页面上方的动态徽章访问。
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 pull
docker-compose pull bookstack
docker-compose up -d
docker-compose up -d bookstack
docker image prune
docker pull lscr.io/linuxserver/bookstack:latest
docker stop bookstack
docker rm bookstack
docker run 参数重新创建容器(只要正确映射到宿主机文件夹,你的 /config 目录及所有配置都会被保留)docker image prune
[!TIP] 我们推荐使用 https://crazymax.dev/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 文件,完成对应架构镜像的构建。
镜像名称:ghcr.io/linuxserver/bookstack
参考标签:latest
.env 中的所有值添加引号包裹。& 字符)。来自真实用户的反馈,见证轩辕镜像的优质服务