如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://linuxserver.io 团队为您带来另一个容器版本,其特点包括:
您可以通过以下渠道找到我们:
https://codeberg.org/bookstack/bookstack 是一个免费开源的 Wiki,旨在创建美观的文档。它配备了一个简单但功能强大的 WYSIWYG 编辑器,使团队能够轻松创建详细且有用的文档。
BookStack 由 SQL 提供支持,并为喜欢 Markdown 的用户提供了 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- |
默认用户名为 ,密码为 password,可通过 [] :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 cli。
[!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 访问。
| Parameter | Function |
|---|---|
-p 6875:80 | http/s web interface. |
-e PUID=1000 | for UserID - see below for explanation |
-e PGID=1000 | for GroupID - see below for explanation |
-e TZ=Etc/UTC | specify a timezone to use, see this list. |
-e APP_URL= | The protocol, IP/URL, and port that your application will be accessed on (ie. http://192.168.1.1:6875 or https://bookstack.mydomain.com |
-e APP_KEY= | Session encryption key. You will need to generate this with docker run -it --rm --entrypoint /bin/bash lscr.io/linuxserver/bookstack:latest appkey |
-e DB_HOST= | The database instance hostname |
-e DB_PORT=3306 | Database port |
-e DB_USERNAME= | Database user |
-e DB_PASSWORD= | Database password (minimum 4 characters & non-alphanumeric passwords must be properly escaped.) |
-e DB_DATABASE= | Database name |
-e QUEUE_CONNECTION= | Set to database to enable async actions like sending email or triggering webhooks. See documentation. |
-v /config | Persistent config files |
--read-only=true | Run container with a read-only filesystem. Please https://docs.linuxserver.io/misc/read-only/. |
您可以通过使用特殊前缀 FILE__ 从文件中设置任何环境变量。
例如:
-e FILE__MYVAR=/run/secrets/mysecretvariable
这将根据 /run/secrets/mysecretvariable 文件的内容设置环境变量 MYVAR。
对于我们所有的镜像,我们提供了使用可选的 -e UMASK=022 设置来覆盖容器内启动的服务的默认umask设置的能力。
请记住,umask 不是 chmod,它根据其值减去权限,而不是添加权限。在寻求支持之前,请在此处查阅相关资料。
使用卷(-v 标志)时,主机操作系统和容器之间可能会出现权限问题,我们通过允许您指定用户 PUID 和组 PGID 来避免此问题。
确保主机上的任何卷目录都归您指定的同一用户所有,这样任何权限问题都会神奇地消失。
在这个例子中 PUID=1000 和 PGID=1000,要找到您的PUID和PGID,请使用 id your_user 命令,如下所示:
id your_user
示例输出:
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
我们发布了各种 https://github.com/linuxserver/docker-mods,以在容器内启用额外功能。可用于此镜像的Mod列表(如有)以及可应用于我们任何镜像的通用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
/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。
[!IMPORTANT] 现有用户应更新:site-confs/default.conf - 清理默认站点配置。
.env 值用引号包裹。&)。来自真实用户的反馈,见证轩辕镜像的优质服务