Skip to content

HBASE-30316 Add Docker build modes and user-friendly tooling - #8530

Open
mnpoonia wants to merge 1 commit into
apache:masterfrom
mnpoonia:feature/hbase-vote-docker
Open

HBASE-30316 Add Docker build modes and user-friendly tooling#8530
mnpoonia wants to merge 1 commit into
apache:masterfrom
mnpoonia:feature/hbase-vote-docker

Conversation

@mnpoonia

@mnpoonia mnpoonia commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Extends hbase_docker to support three input modes and adds unified build script for better user experience.

Changes:

  • Dockerfile: Add INPUT_MODE build arg (tag/tarball/source-dir)
    • tag: Clone from GitHub (default, unchanged behavior)
    • tarball: Build from local tarball file
    • source-dir: Build from local source directory
  • build-hbase.sh: Unified script with user-friendly interface
    • Supports --tag, --tarball, and --source flags
  • README.md: User-first documentation
  • .dockerignore: Proper source directory inclusion

@mnpoonia
mnpoonia force-pushed the feature/hbase-vote-docker branch 3 times, most recently from 6d2b332 to 9e0d14a Compare August 5, 2026 15:22
@apurtell
apurtell requested a lite review from Copilot August 5, 2026 16:39

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves dev-support/hbase_docker by adding multiple Docker build input modes (GitHub tag/branch, local tarball, local source directory) and introducing a single build-hbase.sh entrypoint intended to make building/running HBase-in-Docker more user-friendly.

Changes:

  • Extend Dockerfiles to support INPUT_MODE (tag, tarball, source-dir) for flexible build inputs.
  • Add build-hbase.sh wrapper script to unify build flows and auto-select the Apple Silicon Dockerfile.
  • Replace/update documentation and .dockerignore behavior to better support local tarball/source inputs.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
dev-support/hbase_docker/README.md Rewritten user-focused documentation for the new build modes and script usage.
dev-support/hbase_docker/Dockerfile Adds INPUT_MODE handling and build-context staging logic.
dev-support/hbase_docker/.dockerignore Restricts context by default while allowing tarball or hbase/** inclusion.
dev-support/hbase_docker/build-hbase.sh New unified build script for tag/tarball/source-dir workflows.
dev-support/hbase_docker/m1/Dockerfile Mirrors INPUT_MODE logic for Apple Silicon host usage.
dev-support/hbase_docker/m1/.dockerignore Adds ignore rules for the m1 build context.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread dev-support/hbase_docker/Dockerfile
Comment thread dev-support/hbase_docker/m1/.dockerignore
Comment thread dev-support/hbase_docker/build-hbase.sh Outdated
Comment thread dev-support/hbase_docker/m1/Dockerfile
Comment thread dev-support/hbase_docker/build-hbase.sh
Comment thread dev-support/hbase_docker/build-hbase.sh Outdated
Comment thread dev-support/hbase_docker/build-hbase.sh Outdated
@mnpoonia
mnpoonia force-pushed the feature/hbase-vote-docker branch from 9e0d14a to 96722e4 Compare August 5, 2026 17:16
Extends hbase_docker to support three input modes and adds unified
build script for better user experience.

Changes:
- Dockerfile: Add INPUT_MODE build arg (tag/tarball/source-dir)
  - tag: Clone from GitHub (default, unchanged behavior)
  - tarball: Build from local tarball file
  - source-dir: Build from local source directory
- build-hbase.sh: Unified script with user-friendly interface
  - Prerequisites validation (Docker, disk space)
  - Auto-setup and cleanup
  - Clear progress indicators and error messages
  - Supports --tag, --tarball, and --source flags
- README.md: User-first documentation
  - Progressive disclosure (simple → advanced)
  - Real workflows for three audiences (learners, developers,
    release managers)
  - Maven usage inside containers
  - Volume mount guide for persistent changes
- .dockerignore: Proper source directory inclusion

Target audiences:
- New users learning HBase (3-command quickstart)
- Developers testing local changes (uncommitted changes supported)
- Release managers verifying RCs (tarball mode)

All modes tested and working. Backward compatible - default behavior
unchanged.
@mnpoonia
mnpoonia force-pushed the feature/hbase-vote-docker branch from 96722e4 to 64166df Compare August 5, 2026 17:16
@mnpoonia

mnpoonia commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

@apurtell I have accommodated the review comments. 2 were not valid and all other were. Have fixed all of them

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.

3 participants