Skip to content

Conversation

@tamalsaha
Copy link
Member

@tamalsaha tamalsaha commented Jan 8, 2026

Summary

Add a UBI 10 (Red Hat Universal Base Image) based Dockerfile for enterprise environments that require RHEL-compatible container images.

Changes

  • Uses registry.access.redhat.com/ubi10/ubi:latest as the base image
  • Chromium: Uses Chrome for Testing headless shell from Google (EPEL Chromium requires pipewire which is unavailable in UBI 10)
  • LibreOffice: Installs from official RPM distribution (not available in EPEL 10 or UBI 10 repos)
  • Java: Uses Java 21 OpenJDK headless (UBI 10 doesn't have Java 17, removed jlink stage)
  • QPDF: Installs pre-built binary from GitHub releases (not in EPEL 10)
  • tini: Installs from upstream GitHub release (not in EPEL 10)
  • ExifTool: Installed via perl-Image-ExifTool from EPEL

Package Differences from Debian

Component Debian UBI 10
Base debian:13-slim registry.access.redhat.com/ubi10/ubi:latest
Package Manager apt dnf
Chromium chromium (Debian repos) Chrome for Testing headless shell
LibreOffice libreoffice (trixie-backports) Official RPM from documentfoundation.org
Java default-jdk-headless + jlink java-21-openjdk-headless
QPDF qpdf (Debian repos) Pre-built binary from GitHub
tini tini (Debian repos) Binary from GitHub releases

Testing

# Build the image
docker build --network=host -f build/Dockerfile.ubi -t gotenberg:ubi .

# Run the container
docker run --rm -p 3000:3000 gotenberg:ubi /usr/bin/gotenberg

Verified Components

  • ✅ Gotenberg server starts successfully
  • ✅ All modules loaded: api, chromium, exiftool, libreoffice, libreoffice-api, libreoffice-pdfengine, logging, pdfcpu, pdfengines, pdftk, prometheus, qpdf, webhook
  • ✅ LibreOffice version: 25.2.7.2
  • ✅ Chrome headless shell: stable release
  • ✅ PDF engines: pdftk, qpdf (12.2.0), pdfcpu, exiftool
  • ✅ Image size: 2.7GB

Notes

  • The --network=host flag may be needed during build to resolve EPEL mirrors
  • OpenShift arbitrary user ID support is included (via usermod -aG root gotenberg)

- Uses registry.access.redhat.com/ubi10/ubi:latest as base image
- Installs Chrome for Testing headless shell (EPEL Chromium requires unavailable pipewire)
- Installs LibreOffice from official RPM distribution (not in EPEL 10)
- Installs QPDF from pre-built binary (not in EPEL 10)
- Installs Java 21 OpenJDK headless (UBI 10 doesn't have Java 17)
- Installs tini from upstream release (not in EPEL 10)
- Installs perl-Image-ExifTool for PDF metadata operations
- All PDF engines verified: pdftk, qpdf, pdfcpu, exiftool
- Tested: gotenberg server starts successfully with all modules

Signed-off-by: Tamal Saha <tamal@appscode.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants