
警告:此项目即将结束:
通用标签:
 !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仓库:此处
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务