
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
警告:此项目即将结束:
通用标签:
 !wkhtmltopdf版本 !PHP版本 ]([***]
许可证: 有关BookStack发布的更多信息:https://github.com/BookStackApp/BookStack/releases
我们的镜像支持最常见的架构,如x86-64、arm64和armhf。
我们使用Docker清单实现多平台支持。
有关此功能的更多信息,请参见Docker文档https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list%E3%80%82
只需拉取autoscalix/bookstack即可获取适合您架构的正确镜像,也可以通过标签拉取特定架构的镜像。
此镜像支持的架构:
| 架构 | 标签 |
|---|---|
| x86-64(INTEL/AMD 64位) | amd64-latest |
| arm64(arm64v8) | arm64-latest |
| armhf(arm32v7) | armhf-latest |
如有需要,可以使用这些标签拉取特定架构的镜像。
例如:autoscalix/bookstack:amd64-latest、autoscalix/bookstack:arm64-latest 或 autoscalix/bookstack:armhf-latest
docker-compose(推荐)
yamlversion: "3.2" services: bookstack: image: autoscalix/bookstack container_name: bookstack environment: - APP_URL=https://your-sub.domain.tld - DB_HOST=<yourdbhost> - DB_USERNAME=<yourdbusername> - DB_PASSWORD=<yourdbpass> - DB_DATABASE=<yourdbname> - DB_PORT=<yourdbport> - WAIT_DB_INIT=1 volumes: - /host/data/path/bookstack:/config ports: - 8000:80 restart: unless-stopped depends_on: - bookstack_db bookstack_db: image: mysql container_name: bookstack_db ports: - <yourdbport>:3306 environment: - TZ=Europe/Paris - MYSQL_ROOT_PASSWORD=<yourdbpass> - MYSQL_DATABASE=<yourdbname> - MYSQL_USER=<yourdbusername> - MYSQL_PASSWORD=<yourdbpass> command: mysqld --default-authentication-plugin=mysql_native_password volumes: - /host/data/path/mysql:/var/lib/mysql restart: unless-stopped
docker cli
bashdocker run -d \ --name=bookstack \ -e APP_URL=https://your-sub.domain.tld \ -e DB_HOST=<yourdbhost> \ -e DB_USERNAME=<yourdbuser> \ -e DB_PASSWORD=<yourdbpass> \ -e DB_DATABASE=<yourdbname> \ -p 8000:80 \ -v /path/to/data/on/host:/config \ --restart unless-stopped \ autoscalix/bookstack
Autoscalix Docker镜像配置为可在运行时传递BookStack的.env参数(如上所示)。
| 参数 | 功能 |
|---|---|
-p 8000:80 | 将容器的80端口映射到主机的8000端口 |
-e APP_URL= | 指定访问BookStack实例的IP:端口或URL(例如:http://192.168.1.123:8000 或 https://bookstack.mydomain.tld) |
-e DB_HOST=<yourdbhost> | 指定数据库主机 |
-e DB_USERNAME=<yourdbuser> | 指定数据库用户 |
-e DB_PASSWORD=<yourdbpass> | 指定数据库密码 |
-e DB_DATABASE=<yourdbname> | 指定要使用的数据库 |
-e APP_KEY=<yourSecretAppKeyHere> | (可选)BookStack用于加密目的(CSRF和会话cookie)的密钥,如未指定,将自动生成。APP_KEY需为16或32个字符 |
-e WAIT_DB_INIT=1 | (可选)使容器等待数据库可用,将等待环境变量DB_HOST和DB_PORT中指定的主机和端口上的数据库启动并运行(在docker-compose文件中使用mysql数据库和BookStack时有用)。如果使用外部数据库(BookStack容器启动时已运行),不要指定此变量以加快容器启动速度 |
-v </path/to/data/on/host>:/config | (如果使用BookStack的对象存储如S3则可选)将上传的数据存储在Docker主机上(对于生产环境,建议使用S3对象存储,有关将BookStack上传文件存储到对象存储的更多信息,请参见BookStack文档此处) |
BookStack的默认凭据:
高级用法
如果需要使用BookStack的额外功能(电子邮件、Memcache、LDAP等),可能需要在Docker容器环境中传递其他变量(或创建自己的.env文件)。
可以通过docker run传递BookStack的任何.env.example.complete变量作为额外的容器环境变量(例如:-e VARIABLE=value)。
查看BookStack可用的.env变量https://github.com/BookStackApp/BookStack/blob/master/.env.example.complete%E3%80%82
可以查看BookStack文档获取有关.env文件的更多信息。
创建容器时,镜像将使用路径/config/www/.env中的.env文件。
PDF渲染
此镜像中提供了稳定版本的wkhtmltopdf(带补丁的QT),可按照BookStack文档此处所述用作替代PDF渲染生成器。
此wkhtmltopdf二进制文件已测试可成功渲染大量BookStack页面(超过100页),包含各种内容且不会崩溃(当然需要足够的可用RAM)。
此镜像中wkhtmltopdf二进制文件的路径(需包含在.env文件中)为/usr/local/bin/wkhtmltopdf。
例如:要启用wkhtmltopdf渲染,使用WKHTMLTOPDF=/usr/local/bin/wkhtmltopdf作为环境变量。
集群中托管BookStack的提示
此镜像还兼容常见的Docker云托管技术(如:kubernetes、ECS等),如果需要在容错和可扩展的基础设施上托管BookStack。
如果要在负载均衡器后面托管BookStack,需要使用基于cookie的粘性会话,以确保CSRF和登录正常工作。
建议基于XSRF-TOKEN cookie设置粘性会话,因为这允许每个请求(带有唯一CSRF令牌)在需要时在不同服务器上运行,而不是在整个会话期间固定到一个服务器。
自v21.04以来,每个新的BookStack版本都会通过计划的GitLab管道自动测试Autoscalix Docker镜像的新版本,然后推送到Docker Hub。
每天检查BookStack更新。
以下是此Docker镜像中嵌入的依赖项及其当前版本列表:
以下是根据Docker中运行BookStack的方式(docker-compose或docker run)更新docker-bookstack安装的示例。
数据库迁移在容器启动期间完成。
docker-compose
bash# 更新镜像,然后更新容器 docker-compose pull docker-compose up -d # (可选)删除旧的悬空镜像 docker image prune
docker cli
bash# 更新autoscalix/bookstack镜像 docker pull autoscalix/bookstack # 然后停止容器 docker stop bookstack # 删除旧容器 docker rm bookstack # 然后使用上面的docker run示例从Docker镜像重新创建容器(参见“使用示例 - docker cli”) ... # 最后删除旧的悬空镜像 docker image prune
如果需要为开发或其他目的对此镜像进行高级修改,请使用以下命令在本地构建此镜像:
bashgit clone https://gitlab.com/es-six/autoscalix-docker-bookstack.git autoscalix-docker-bookstack cd autoscalix-docker-bookstack git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch bookstack docker build --no-cache -t autoscalix/bookstack .
可以使用docker buildx在x86_64硬件上构建arm64镜像:
bash# 获取Docker的qemu docker run --rm --privileged multiarch/qemu-user-static --reset -p yes # 创建docker buildx构建器 docker buildx create --name multiarch-builder docker buildx use multiarch-builder docker buildx inspect --bootstrap multiarch-builder # 运行构建 docker buildx build --load --no-cache --platform linux/arm64 -t bookstack-arm64 .
可以使用docker buildx在x86_64硬件上构建armhf镜像:
bash# 获取Docker的qemu docker run --rm --privileged multiarch/qemu-user-static --reset -p yes # 创建docker buildx构建器 docker buildx create --name multiarch-builder docker buildx use multiarch-builder docker buildx inspect --bootstrap multiarch-builder # 运行构建 docker buildx build --load --no-cache --platform linux/arm/v7 -t bookstack-armhf .
使用默认Dockerfile,可用于构建x86_64、arm64或armhf版本。
如果要在Windows WSL上使用此镜像,需要执行两项额外操作:
建议:使用上面的docker-compose示例,并指定DB_HOST=host.docker.internal
如果需要显示BookStack中发生的错误以排查安装问题,传递环境变量APP_DEBUG=1,以便在加载页面时发生错误时显示错误详细信息。
GitLab仓库地址:[***]
MIT,查看GitLab仓库:此处
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 autoscalix/bookstack 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: