This document explains how to use pre-built custom DataHub images from GitHub Container Registry instead of building them locally (which can take over an hour).
- Quick Start for Team Members
- Authentication
- Available Images
- Building and Pushing Images
- Troubleshooting
The easiest way to get the pre-built images:
# Navigate to the repository
cd Custom-Datahub
# Run the pull script
./docker/pull-images.shThis will:
- Pull both custom images from GHCR
- Tag them correctly for local use
- Make them ready for use with docker-compose
If you prefer to pull images manually:
# Pull frontend image
docker pull ghcr.io/starschema/custom-datahub-frontend-react:latest
docker tag ghcr.io/starschema/custom-datahub-frontend-react:latest custom-datahub-frontend-react:hcltech
# Pull actions image
docker pull ghcr.io/starschema/datahub-actions:latest
docker tag ghcr.io/starschema/datahub-actions:latest my-datahub-actions:latestAfter pulling images, start DataHub normally:
cd docker/quickstart
docker compose -f docker-compose.quickstart.yml up -dOr with data quality features:
docker compose -f datahub-with-data-quality.yml up -dIf the starschema/Custom-Datahub repository is public, no authentication is required - anyone can pull the images.
If the repository is private, team members need to authenticate:
- Go to GitHub Settings → Developer settings → Personal access tokens → Tokens (classic)
- Click "Generate new token (classic)"
- Give it a name (e.g., "DataHub GHCR Access")
- Select scopes:
- ✅
read:packages- Download packages from GitHub Package Registry
- ✅
- Click "Generate token"
- Copy the token immediately (you won't see it again!)
# Using your GitHub username and the PAT you just created
echo YOUR_PERSONAL_ACCESS_TOKEN | docker login ghcr.io -u YOUR_GITHUB_USERNAME --password-stdinExample:
echo ghp_xxxxxxxxxxxxxxxxxxxx | docker login ghcr.io -u jdoe --password-stdinYou should see: Login Succeeded
Test that you can pull images:
docker pull ghcr.io/starschema/custom-datahub-frontend-react:latestRepository Owners/Maintainers: If a team member can't access the images, grant them access:
- Go to the GitHub repository: https://github.com/starschema/Custom-Datahub
- Click "Packages" on the right sidebar
- Click on the image name (e.g., "custom-datahub-frontend-react")
- Click "Package settings"
- Under "Manage Access", click "Add people or teams"
- Add your team member with at least "Read" permission
Note: Anyone with read access to the repository should automatically have read access to the packages.
Image: ghcr.io/starschema/custom-datahub-frontend-react
Features:
- HCLTech logo and branding
- Custom purple theme (#6B4EFF)
- Customized navigation and UI elements
Tags:
latest- Most recent buildhcltech- Stable HCLTech branded version<git-sha>- Specific commit versions (e.g.,abc1234)
Supported Architectures:
linux/amd64- Intel/AMD 64-bit (Linux servers, Intel Macs)linux/arm64- ARM 64-bit (Apple Silicon M1/M2/M3 Macs)
Docker automatically pulls the correct architecture for your system.
Size: ~1.22GB (per architecture)
Image: ghcr.io/starschema/datahub-actions
Features:
- Data quality action for automated testing
- Executor action for UI-based ingestion
- Pre-configured with all necessary dependencies
Tags:
latest- Most recent build<git-sha>- Specific commit versions (e.g.,abc1234)
Size: ~1.42GB
If you've made changes to the frontend or actions code and need to push new images:
- Have push access to the
starschema/Custom-Datahubrepository - Authenticate with GHCR (with
write:packagespermission) - Docker with Buildx support is installed and running (Docker 19.03+)
cd Custom-Datahub/docker
# Build and push both images
./build-push-images.shThis will:
- Build custom frontend image for multiple platforms (linux/amd64, linux/arm64)
- Build custom actions image for native platform
- Tag them with git SHA and
latest - Push to GHCR
Note: Multi-platform frontend builds take longer (~2-3x) but ensure compatibility across Intel/AMD and Apple Silicon Macs.
# Build and push only frontend
./build-push-images.sh --frontend-only
# Build and push only actions
./build-push-images.sh --actions-only
# Build without pushing (for testing)
./build-push-images.sh --no-push
# Build with custom tag
./build-push-images.sh --tag v1.2.3Check the packages on GitHub:
Problem: Docker can't authenticate with GHCR.
Solution:
- Authenticate using the steps in Authentication
- Make sure your PAT hasn't expired
- Verify your PAT has
read:packagesscope
Problem: Image doesn't exist or you don't have access.
Solutions:
- Check the image name is correct
- Verify you have read access to the repository/package
- Contact repository owner to grant you access
Problem: Image was built for a different CPU architecture than your system.
Solution (for frontend images): As of the latest updates, frontend images are multi-architecture and support both:
linux/amd64(Intel/AMD processors)linux/arm64(Apple Silicon M1/M2/M3)
If you see this error:
- Pull the latest image version:
docker pull ghcr.io/starschema/custom-datahub-frontend-react:latest
- Verify the image has multi-arch support:
docker manifest inspect ghcr.io/starschema/custom-datahub-frontend-react:latest | grep -A 3 "platform"
- If the image is older (pre-multi-arch), ask maintainers to rebuild and push a new version
Problem: Wrong tag or outdated image.
Solutions:
- Pull the latest version:
docker pull ghcr.io/starschema/custom-datahub-frontend-react:latest --no-cache docker pull ghcr.io/starschema/datahub-actions:latest --no-cache
- Check which version you're running:
docker images | grep -E "(custom-datahub-frontend|datahub-actions)"
Problem: Docker is not running.
Solution: Start Docker Desktop and wait for it to fully initialize.
Problem: Network speed or Docker daemon issues.
Solutions:
- Check your internet connection
- Try a different network
- Restart Docker Desktop
- Use a Docker mirror/proxy if available in your organization
If you need to switch back to using locally-built images:
# Set environment variables
export DATAHUB_FRONTEND_IMAGE=custom-datahub-frontend-react:hcltech
export DATAHUB_ACTIONS_IMAGE=my-datahub-actions:latest
# Start docker-compose
docker compose -f docker-compose.quickstart.yml up -dOr build images locally:
./docker/build-push-images.sh --no-pushImages are rebuilt and pushed when:
- Frontend code is modified (branding, theme, UI changes)
- Actions configurations are updated
- Dependencies are upgraded
- Bug fixes or security patches are applied
Team members should pull new images when:
-
After pulling latest code from GitHub
git pull origin master ./docker/pull-images.sh
-
When you see build-related changes in commits
- Look for commits mentioning "frontend", "actions", "docker", or "image"
-
When maintainers announce new image versions
- Check team communication channels
- Look at GitHub releases/tags
See when your local images were pulled:
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.CreatedAt}}" | grep -E "(custom-datahub|datahub-actions)"Compare with latest commit on GitHub to see if you need to update.
- Pull images regularly - Before starting work on DataHub
- Use the pull script - Easier than manual commands
- Don't build unless necessary - Building takes over an hour
- Report issues - If images don't work, notify the team
- Push after significant changes - Keep team members up to date
- Tag releases properly - Use semantic versioning for releases
- Test before pushing - Build locally with
--no-pushfirst - Document changes - Update CHANGELOG when pushing new images
- Communicate updates - Let team know when new images are available
If you have issues:
- Check this troubleshooting guide
- Ask in the team Slack/Teams channel
- Contact the repository maintainers
- Open an issue on GitHub