Unofficial Docker image for Tabula
183
A custom, multi-architecture Docker image for Tabula, a tool for extracting tables from PDF documents into structured data.
This image packages the official Tabula application for Docker, Docker Compose, Portainer, and reverse-proxy deployments.
azuretechllc/tabula
1.2.1
linux/amd64linux/arm64Docker automatically selects the correct architecture when pulling the image.
azuretechllc/tabula:1.2.1
azuretechllc/tabula:1.2
azuretechllc/tabula:1
azuretechllc/tabula:latest
For production deployments, pinning the full application version is recommended:
image: azuretechllc/tabula:1.2.1
To track the current build:
image: azuretechllc/tabula:latest
linux/amd64 and linux/arm64/data storagedocker run -d \
--name tabula \
--restart unless-stopped \
-p 8080:8080 \
-v tabula_data:/data \
azuretechllc/tabula:latest
Open:
http://SERVER_IP:8080
services:
tabula:
image: azuretechllc/tabula:${TABULA_TAG:-latest}
container_name: tabula
restart: unless-stopped
environment:
TABULA_PORT: ${TABULA_PORT:-8080}
TABULA_DATA_DIR: ${TABULA_DATA_DIR:-/data}
TABULA_OPEN_BROWSER: ${TABULA_OPEN_BROWSER:-false}
JAVA_XMS: ${JAVA_XMS:-256M}
JAVA_XMX: ${JAVA_XMX:-1024M}
JAVA_EXTRA_OPTS: ${JAVA_EXTRA_OPTS:-}
TZ: ${TZ:-America/Chicago}
ports:
- "${TABULA_HTTP_PORT:-8080}:${TABULA_PORT:-8080}"
volumes:
- tabula_data:${TABULA_DATA_DIR:-/data}
volumes:
tabula_data:
Example .env:
TABULA_TAG=latest
TABULA_HTTP_PORT=8080
TABULA_PORT=8080
TABULA_DATA_DIR=/data
TABULA_OPEN_BROWSER=false
JAVA_XMS=256M
JAVA_XMX=1024M
JAVA_EXTRA_OPTS=
TZ=America/Chicago
Start:
docker compose up -d
Logs:
docker compose logs -f tabula
Stop:
docker compose down
When using Nginx Proxy Manager or another Docker reverse proxy, Tabula does not need to publish a host port.
services:
tabula:
image: azuretechllc/tabula:${TABULA_TAG:-latest}
container_name: tabula
restart: unless-stopped
environment:
TABULA_PORT: ${TABULA_PORT:-8080}
TABULA_DATA_DIR: ${TABULA_DATA_DIR:-/data}
TABULA_OPEN_BROWSER: ${TABULA_OPEN_BROWSER:-false}
JAVA_XMS: ${JAVA_XMS:-256M}
JAVA_XMX: ${JAVA_XMX:-1024M}
JAVA_EXTRA_OPTS: ${JAVA_EXTRA_OPTS:-}
TZ: ${TZ:-America/Chicago}
volumes:
- tabula_data:${TABULA_DATA_DIR:-/data}
networks:
- proxy
volumes:
tabula_data:
networks:
proxy:
external: true
Create the external network once if needed:
docker network create proxy
Reverse-proxy target:
Hostname: tabula
Port: 8080
Protocol: http
| Variable | Default | Description |
|---|---|---|
TABULA_PORT | 8080 | Internal Tabula web port |
TABULA_DATA_DIR | /data | Persistent working/data directory |
TABULA_OPEN_BROWSER | false | Controls Tabula browser-opening behavior |
JAVA_XMS | 256M | Initial Java heap size |
JAVA_XMX | 1024M | Maximum Java heap size |
JAVA_EXTRA_OPTS | empty | Additional JVM options |
TZ | UTC | Container timezone |
TABULA_TAG and TABULA_HTTP_PORT are Compose variables rather than application environment variables.
The persistent directory inside the container is:
/data
Named-volume example:
volumes:
- tabula_data:/data
Host-directory example:
volumes:
- /opt/tabula/data:/data
The container runs as:
UID 10001
GID 10001
For a Linux bind mount:
sudo mkdir -p /opt/tabula/data
sudo chown -R 10001:10001 /opt/tabula/data
Defaults:
JAVA_XMS=256M
JAVA_XMX=1024M
Smaller-memory example:
JAVA_XMS=128M
JAVA_XMX=512M
docker ps
Detailed health information:
docker inspect --format='{{json .State.Health}}' tabula
latestPull the updated image:
docker pull azuretechllc/tabula:latest
Recreate the Compose deployment:
docker compose pull
docker compose up -d
Optionally remove unused older images:
docker image prune
Your persistent /data volume is separate from the container image and is retained when the container is recreated.
Change:
TABULA_TAG=1.2.1
to the desired newer version and run:
docker compose pull
docker compose up -d
Verify the running container:
docker ps
docker logs --tail 100 tabula
Log in to Docker Hub:
docker login
Create a Buildx builder once if needed:
docker buildx create \
--name multiarch \
--driver docker-container \
--use
docker buildx inspect --bootstrap
Publish the multi-architecture version:
./build.sh --push
The build publishes:
azuretechllc/tabula:1.2.1
azuretechllc/tabula:1.2
azuretechllc/tabula:1
azuretechllc/tabula:latest
for:
linux/amd64
linux/arm64
Verify the manifest:
docker buildx imagetools inspect azuretechllc/tabula:latest
When a new official Tabula release is available:
TABULA_VERSION.TABULA_SHA256.latest tags.Do not reuse the old checksum for a new Tabula release.
This is a custom Docker packaging of the Tabula application.
Tabula itself is developed by the Tabula project. This Docker image is independently packaged and is not an official Docker image published by the Tabula project.
Official upstream project:
https://github.com/tabulapdf/tabula
Tabula is distributed under the MIT License. Refer to the upstream Tabula project for complete licensing and attribution information.
Content type
Image
Digest
sha256:4c0ff1d95…
Size
120.4 MB
Last updated
about 1 month ago
docker pull azuretechllc/tabula