Over the past year, we worked to keep Red Hat Universal Base Image 8 (UBI) builders stable under the Paketo Community GitHub organization. Several fixes across Paketo Buildpacks repositories were necessary so UBI 8 builders could consistently build applications for Java and Node.js. We have good news! UBI 8 builders have been promoted from the Paketo Community GitHub organization to the Paketo Buildpacks GitHub organization (see RFC0062 and RFC0064 and the official announcement). UBI 8 builders have passed the testing and experimentation phase, and are now using the same maintenance and release patterns as other Paketo Buildpacks repositories.
This change means some repositories have migrated from the Paketo Community organization to the Paketo Buildpacks organization:
- Builder (formerly paketo-community/builder-ubi-base)
- New repository: paketo-buildpacks/builder-ubi8-base
- Buildpackless Builder (formerly paketo-community/builder-ubi-buildpackless-base)
- New repository: paketo-buildpacks/builder-ubi8-buildpackless-base
- Stacks/base images (formerly github.com/paketo-community/ubi-base-stack)
- New repository: github.com/paketo-buildpacks/ubi8-base-stack
- Node.js Extension (formerly paketo-community/ubi-nodejs-extension)
- New repository: paketo-buildpacks/ubi-nodejs-extension
In addition, the following images moved to a different namespace on Docker hub:
- Builder image (formerly paketocommunity/builder-ubi-base)
- New name: paketobuildpacks/builder-ubi8-base
- Builder image (formerly paketocommunity/builder-ubi-buildpackless-base)
- New name: paketobuildpacks/builder-ubi8-buildpackless-base
- Run image (formerly paketocommunity/run-ubi-base)
- New name: paketobuildpacks/run-ubi8-base
- Build image (formerly paketocommunity/build-ubi-base)
- New name: paketobuildpacks/build-ubi8-base
For Node.js:
- Extension (formerly paketocommunity/ubi-nodejs-extension)
- New name: paketobuildpacks/ubi-nodejs-extension
- Run image (formerly paketocommunity/run-nodejs-16-ubi-base)
- New name: paketobuildpacks/run-nodejs-16-ubi8-base
- Run image (formerly paketocommunity/run-nodejs-18-ubi-base)
- New name: paketobuildpacks/run-nodejs-18-ubi8-base
- Run image (formerly paketocommunity/run-nodejs-20-ubi-base)
- New name: paketobuildpacks/run-nodejs-20-ubi8-base
For Java:
- Run image (formerly paketocommunity/run-java-8-ubi-base)
- New name: paketobuildpacks/run-java-8-ubi8-base
- Run image (formerly paketocommunity/run-java-11-ubi-base)
- New name: paketobuildpacks/run-java-11-ubi8-base
- Run image (formerly paketocommunity/run-java-17-ubi-base)
- New name: paketobuildpacks/run-java-17-ubi8-base
- Run image (formerly paketocommunity/run-java-21-ubi-base)
- New name: paketobuildpacks/run-java-21-ubi8-base
The previous container image names remain available on Docker Hub, but they will not receive updates.
In case you've never used UBI to build an application, here are some simple examples to get you started.
Build a Node.js application with UBI 8 and Paketo Buildpacks
Before you begin, ensure that Podman (5.1.0 or greater) is installed. On Fedora, Podman is installed by default. Configure Podman according to Paketo Buildpacks documentation:
First, start and enable the service using systemd:
systemctl enable --user --now podman.socketRoute the Docker command-line interface (CLI) to Podman:
export DOCKER_HOST="unix://$(podman info \
-f "{{.Host.RemoteSocket.Path}}")"Install pack CLI
Next, you must install the pack command:
dnf install packCurrently, the extension is in the experimental phase, and therefore the experimental features must be enabled:
pack config experimental trueBuilding a Node.js application
For this example, you can use any Node.js application you might have locally. If you need a sample application, clone the Paketo Buildpacks samples repository:
git clone https://github.com/paketo-buildpacks/samplesBuild the Node.js application with pack and the ubi8-base-builder builder:
pack --docker-host=inherit build my-node-app \
--builder index.docker.io/paketobuildpacks/builder-ubi8-base \ --path ./samples/nodejs/npmWhen the build finishes, the image name appears at the end of the build logs:
Successfully built image my-node-appTo run the application, use Podman:
podman run -d -p 8080:8080 my-node-appWith the container listening on port 8080, confirm that the app responds:
curl http://localhost:8080You get an HTTP/1.1 200 OK response followed by HTML content. It works!
Conclusion
The promotion of the Red Hat UBI 8 builders to the main Paketo Buildpacks organization means these assets have moved beyond the testing phase and are ready for you to use. Try the new repository and container images out for your own Java and Node.js applications!