TIKA-4703: Add Docker CI pipelines for tika-server and tika-grpc#2715
Merged
nddipiazza merged 4 commits intomainfrom Apr 21, 2026
Merged
TIKA-4703: Add Docker CI pipelines for tika-server and tika-grpc#2715nddipiazza merged 4 commits intomainfrom
nddipiazza merged 4 commits intomainfrom
Conversation
Move Docker build infrastructure into the main tika repo so that Docker image releases are tied directly to Tika releases rather than requiring cross-repo coordination with tika-docker/tika-grpc-docker. Snapshot workflow (main branch push): - Builds tika-server minimal and full images from Maven output - Builds tika-grpc image from Maven output - Pushes snapshot tags to Docker Hub (e.g. 4.0.0-SNAPSHOT) Release workflow (version tag push): - Builds tika-server minimal/full from Apache mirror JARs with GPG verification (multi-arch: amd64, arm64, arm/v7, s390x) - Builds tika-grpc from Maven output (multi-arch: amd64, arm64) - Pushes versioned + latest tags to Docker Hub Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
- tika-server snapshot Dockerfiles: use assembly tgz (thin JAR + lib/) instead of the thin JAR alone, matching the 4.x packaging model - tika-grpc: bundle default-tika-config.json so the server starts without requiring a config volume mount - tika-grpc: pass -c, -p, and --plugin-roots as CLI args instead of system properties so TikaGrpcServer actually picks them up - tika-grpc: default port is now 9090 (configurable via TIKA_GRPC_PORT) Tested locally: all three images (minimal, full, grpc) build and start successfully. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
TikaGrpcServer now falls back to a bundled default-tika-config.json from the classpath when no -c flag is provided, matching normal Java application conventions. The default config is empty (no pre-configured fetchers/emitters) — users configure these at runtime. This removes the need for a separate config file in the Docker image. The entrypoint only passes -c when TIKA_CONFIG env var is explicitly set. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Contributor
Author
|
Adding clarification: the Docker images are published to the existing Docker Hub repositories:
These are the same Docker Hub repos currently used by |
Contributor
Author
bartek
approved these changes
Mar 30, 2026
joepurdy
reviewed
Mar 30, 2026
MartijnVdS
reviewed
Apr 14, 2026
- run the grpc image as the shared non-root UID/GID - align the grpc image with Java 21 and an LTS Ubuntu base Co-authored-by: Copilot <[email protected]>
joepurdy
approved these changes
Apr 17, 2026
joepurdy
left a comment
There was a problem hiding this comment.
@nddipiazza Looks good to me! Thanks for getting these updates in
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Moves Docker build infrastructure into the main tika repo so that Docker image releases are tied directly to Tika releases, eliminating the need for cross-repo coordination with
tika-dockerandtika-grpc-docker.apache/tika,apache/tika-full, andapache/tika-grpcsnapshot images to Docker Hublatesttags for all three imagestika-dockerrepo (source of truth), plus newDockerfile.snapshotvariants that use the Maven assembly output instead of downloading from Apache mirrorsdefault-tika-config.jsonfrom classpath when no-cflag is provided, matching standard Java application conventionsRequired Setup
DOCKERHUB_USERNAMEandDOCKERHUB_TOKENsecrets must be configured in the repo settings for the workflows to push images.Test plan
🤖 Generated with Claude Code