
autoscalix/bookstackWARNING : this projects will end shortly :
General tags :
 !wkhtmltopdf version !PHP version ]([***]
License : More information about BookStack releases here : [***]
Our images support most common architectures such as x86-64, arm64 and armhf.
We use docker manifest for multi-platform awareness.
More information about this feature is available in the docker documentation here.
Simply pulling autoscalix/bookstack should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are:
| Architecture | Tag |
|---|---|
| x86-64 (INTEL/AMD 64 bit) | amd64-latest |
| arm64 (arm64v8) | arm64-latest |
| armhf (arm32v7) | armhf-latest |
If needed, you can pull image for specific architecture using these tags.
Eg : autoscalix/bookstack:amd64-latest, autoscalix/bookstack:arm64-latest or autoscalix/bookstack:armhf-latest
yamlversion: "3.2" services: bookstack: image: autoscalix/bookstack container_name: bookstack environment: - APP_URL=[***] - 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
bashdocker run -d \ --name=bookstack \ -e APP_URL=[***] \ -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 images are configured so the BookStack .env parameters can be passed at runtime (such as those above).
| Parameter | Function |
|---|---|
-p 8000:80 | will map the container's port 80 to port 8000 on the host |
-e APP_URL= | for specifying the IP:port or URL your BookStack instance will be accessed on (ie. [***] or [***] |
-e DB_HOST=<yourdbhost> | for specifying the database host |
-e DB_USERNAME=<yourdbuser> | for specifying the database user |
-e DB_PASSWORD=<yourdbpass> | for specifying the database password |
-e DB_DATABASE=<yourdbname> | for specifying the database to be used |
-e APP_KEY=<yourSecretAppKeyHere> | (optional) this key is used by BookStack for ciphering purposes (CSRF and session cookies), if no APP_KEY specified, it will be generated automatically. The APP_KEY needs to be 16 or 32 characters long |
-e WAIT_DB_INIT=1 | (optional) for making container to wait the database to be available, this will wait database to be up and running for host and port specified in environment variables DB_HOST AND DB_PORT. (usefull if you use mysql database and BookStack in a docker-compose file). If you use an external database (already started when the BookStack container start), don't specify this variable to make container start faster. |
-v </path/to/data/on/host>:/config | (optional if you use an object storage with BookStack, eg : S3) this will store any uploaded data on the docker host (for production, I recommend using an S3 object storage, more information about storing BookStack uploaded files into an object storage in the BookStack documentation here) |
BookStack has the following default credentials :
If you need to use the extra functionalities of BookStack (email, Memcache, LDAP, etc.) you may need to pass additional variables in the docker container environment (or make your own .env file).
You can pass any of the BookStack .env.example.complete variables as additional container environment variables with docker run (eg : -e VARIABLE=value).
Check available .env variables for BookStack here.
You can check the BookStack documentation for additional information about the .env file.
When you create the container, the image will use the .env file in the path /config/www/.env.
A stable version of wkhtmltopdf (with patched QT) is provided in this image, you can use it as an alternative PDF rendering generator with BookStack as described in the BookStack documentation here.
This wkhtmltopdf binary has been tested to render successfully a large amount of bookstack pages (more than 100) with various content without crashing (if you have enought free RAM of course).
The path to the wkhtmltopdf binary in this image to include in your .env file is /usr/local/bin/wkhtmltopdf.
Eg : to enable wkhtmltopdf rendering, use WKHTMLTOPDF=/usr/local/bin/wkhtmltopdf as environment variable.
This image is also compatible with common docker cloud hosting technologies (eg : kubernetes, ECS, ...) if you need to host BookStack on a fault tolerant and scalable infrastructure.
If you want to host BookStack behind a load ***, you will need to use cookie based sticky sessions for CSRF and login to work properly.
I recommend to base sticky sessions on the XSRF-TOKEN cookie as it allow each requests (with a unique CSRF token) to be runned on different server if needed instead of stick to one server for the whole session.
New version of Autoscalix docker images are tested automaticaly then pushed to Docker Hub by a scheduled gitlab pipeline for each new BookStack release since v21.04
BookStack updates are checked every day.
Here is the list of dependencies and their current version embeded in this docker image :
You can find bellow an exemple of how to update your docker-bookstack installation depending of how you run BookStack in docker (docker-compose or docker run).
Database migrations are done during the container startup.
bash# Update images, then update containers docker-compose pull docker-compose up -d # Optionally, remove old dandling images docker image prune
bash# Update the autoscalix/bookstack image docker pull autoscalix/bookstack # Then stop the container docker stop bookstack # Remove old dandling images docker rm bookstack # Then recreate a container from the docker images using the docker run exemple above (see Exemple usage with docker cli) ... # Finally remove old dandling images docker image prune
If you need to make advanced modifications to these images for development or other purposes, use the following commands to build this image locally :
bashgit clone [***] autoscalix-docker-bookstack cd autoscalix-docker-bookstack git clone [***] --branch release --single-branch bookstack docker build --no-cache -t autoscalix/bookstack .
The arm64 image can be built on x86_64 hardware using docker buildx
bash# Get qemu for Docker docker run --rm --privileged multiarch/qemu-user-static --reset -p yes # Create a docker buildx builder docker buildx create --name multiarch-builder docker buildx use multiarch-builder docker buildx inspect --bootstrap multiarch-builder # Run build docker buildx build --load --no-cache --platform linux/arm64 -t bookstack-arm64 .
The armhf image can be built on x86_64 hardware using docker buildx
bash# Get qemu for Docker docker run --rm --privileged multiarch/qemu-user-static --reset -p yes # Create a docker buildx builder docker buildx create --name multiarch-builder docker buildx use multiarch-builder docker buildx inspect --bootstrap multiarch-builder # Run build docker buildx build --load --no-cache --platform linux/arm/v7 -t bookstack-armhf .
Use the default Dockerfile, it can be use to build x86_64, arm64 or armhf build.
If you want to use this image on windows WSL, it's possible if you do two extra things :
Recommandation : use the docker-compose example above and specify DB_HOST=host.docker.internal
If you need to display errors occurring in BookStack to troubleshoot your installation, pass the variable APP_DEBUG=1 as environment variable so error details will be displayed when error occur while loading a page.
You can find the Gitlab repository here : [***]
MIT, checkout the Gitlab repository : here




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务