Docker image¶
A pre-built OCI image for the Thumbor service with
zodb-pgjsonb-thumborblobloader is published to the GitHub Container
Registry.
Image location¶
ghcr.io/bluedynamics/zodb-pgjsonb-thumborblobloader
Platforms¶
The image is built for two architectures:
linux/amd64linux/arm64
Base image¶
python:3.13-trixie (Debian Trixie)
Automatic rebuilds¶
Trigger |
When |
|---|---|
Push to |
Every merge or push to main |
GitHub Release published |
When a |
Manual dispatch |
Via GitHub Actions UI or |
Weekly Thumbor check |
Every Monday at 06:00 UTC – rebuilds if a new Thumbor version is on PyPI |
Environment variables¶
The image is configured entirely via environment variables.
No thumbor.conf editing is required.
Security¶
Variable |
Default |
Description |
|---|---|---|
|
|
HMAC-SHA1 signing key. Must match |
|
|
Accept unsigned |
PostgreSQL connection¶
Variable |
Default |
Description |
|---|---|---|
|
|
PostgreSQL connection string (required). For example |
|
|
Minimum connections in the async pool. |
|
|
Maximum connections in the async pool. |
Disk cache¶
Variable |
Default |
Description |
|---|---|---|
|
|
Directory for the local blob cache. Empty disables caching. |
|
|
Maximum cache size in bytes. |
S3 fallback¶
Variable |
Default |
Description |
|---|---|---|
|
|
S3 bucket name. Empty disables S3 fallback. |
|
|
AWS region. |
|
|
Custom S3 endpoint for MinIO/Ceph. Empty uses AWS. |
Plone access control¶
Variable |
Default |
Description |
|---|---|---|
|
|
Internal Plone URL for auth verification. Empty disables the auth handler entirely. |
|
|
Auth cache lifetime in seconds. |
Automatic image format conversion¶
Variable |
Default |
Description |
|---|---|---|
|
|
Automatically convert to WebP when the browser supports it. |
|
|
Automatically convert to AVIF when the browser supports it (more CPU-intensive). |
Smart cropping¶
Variable |
Default |
Description |
|---|---|---|
|
|
Comma-separated Thumbor detector modules for |
The Docker image includes opencv-python-headless, which provides the
OpenCV backend required by Thumbor’s built-in detectors. No additional
packages need to be installed.
On the Plone side, also enable smart_cropping in the registry
(@@thumbor-settings) so that Plone generates URLs with /smart/.
Cache-Control headers¶
These settings only take effect when the auth handler is loaded
(PGTHUMBOR_PLONE_AUTH_URL is set).
Variable |
Default |
Description |
|---|---|---|
|
|
Cache-Control header for authenticated (3-segment) image URLs. |
|
|
Cache-Control header for public (2-segment) image URLs. Empty uses Thumbor’s default ( |
Result storage¶
Variable |
Default |
Description |
|---|---|---|
|
|
Directory for Thumbor’s result cache (processed images). |
Health check¶
The image exposes a health check endpoint at /healthcheck on port 8888.
curl http://localhost:8888/healthcheck
# Returns: WORKING
Exposed port¶
The image listens on port 8888.