artifacts
jib
Our great sponsors
- CodiumAI - TestGPT | Generating meaningful tests for busy devs
- ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
- InfluxDB - Access the most powerful time series database as a service
- Sonar - Write Clean Java Code. Always.
artifacts | jib | |
---|---|---|
2 | 43 | |
217 | 12,782 | |
5.1% | 1.1% | |
3.8 | 8.9 | |
3 days ago | 12 days ago | |
Java | ||
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
artifacts
-
Tart – open source virtualization for Apple Silicon
One of the most interesting/unique features is the integration with OCI-compatible container registries. Tart can pull/push virtual machines from/to a registry. This feature was inspired by OCI Artifacts initiative.
jib
-
Tool to build Docker images
JIB
-
Thin (ish) Clojure jars for better docker containers
It is pretty easy to do with https://github.com/GoogleContainerTools/jib.
-
Fearless Distroless
I first learned about Distroless because it was the default option in Google's Jib. Jib is a Maven plugin to create Docker containers without dependency on Docker. Note that the default has changed now.
-
Spring Boot pod takes 60 seconds to become ready; trouble handling spiky workloads
Optimize your Dockerfile by using a small base Java Image, use either Spring Boot's layers tools or Google Jib to build your docker file, and increase CPU/Memory requests and limits if you can.
-
CI/CD with Spring Boot and Jenkins Pipelines
In this section, we will setup the automated generation and deployment of a Docker container image. You will need a Docker Hub account and the Jib Gradle Plugin.
-
How to Deploy JHipster Microservices on Amazon EKS Using Terraform and Kubernetes
You need to build Docker images for each app. This is specific to the JHipster application used in this tutorial which uses Jib to build the images. Make sure you are logged into Docker using docker login. Navigate to each app folder (store, invoice, product) and run the following command:
-
Cloud Native Java Microservices with JHipster and Istio
We are ready to deploy now. First, we need to build and push the images to the registry. We can use the handy Jib commands provided by JHipster. Navigate to each of the microservice folders and run the commands below.
-
Dockerizing Maven Spring boot Application.
% mvn compile jib:build [INFO] Scanning for projects... [INFO] [INFO] ------------------------< net.shagie:hello-jib >------------------------ [INFO] Building Hello Jib 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ hello-jib --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] Copying 1 resource [INFO] Copying 0 resource [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ hello-jib --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- jib-maven-plugin:2.8.0:build (default-cli) @ hello-jib --- [WARNING] 'mainClass' configured in 'maven-jar-plugin' is not a valid Java class: ${start-class} [INFO] [INFO] Containerizing application to shagie/hellojib... [WARNING] Base image 'gcr.io/distroless/java17:nonroot' does not use a specific image digest - build may not be reproducible ... credential stuff [INFO] Using base image with digest: sha256:2c29be2a889be27e4905127ae7122d390df08ac170791153b54f086ce7507b59 [INFO] [INFO] Container entrypoint set to [java, -cp, /app/resources:/app/classes:/app/libs/*, net.shagie.hellojib.HelloJibApplication] [INFO] [INFO] Built and pushed image as shagie/hellojib [INFO] [INFO] A new version of Jib (3.2.1) is available (currently using 2.8.0). Update your build configuration to use the latest features and fixes! [INFO] https://github.com/GoogleContainerTools/jib/blob/master/jib-maven-plugin/CHANGELOG.md [INFO] Please see https://github.com/GoogleContainerTools/jib/blob/master/docs/privacy.md for info on disabling this update check. [INFO] [INFO] Executing tasks: [INFO] [==============================] 100.0% complete [INFO] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:21 min [INFO] Finished at: 2022-04-26T19:32:05-05:00 [INFO] ------------------------------------------------------------------------
-
Welcome to JAR Hell, Part 2: Deployment Strategies.
That Dockerfile's isn't that complicated. What is even easier is using Jib: https://github.com/GoogleContainerTools/jib
What are some alternatives?
kaniko - Build Container Images In Kubernetes
jkube - Build and Deploy java applications on Kubernetes
buildkit - concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit
Bazel - a fast, scalable, multi-language and extensible build system
docker-maven-plugin - INACTIVE: A maven plugin for Docker
distroless - 🥑 Language focused docker images, minus the operating system.
shadow - Gradle plugin to create fat/uber JARs, apply file transforms, and relocate packages for applications and libraries. Gradle version of Maven's Shade plugin.
tilt-extensions - Extensions for Tilt
pack - CLI for building apps using Cloud Native Buildpacks
skopeo - Work with remote images registries - retrieving information, images, signing content
cyclonedx-gradle-plugin - Creates CycloneDX Software Bill of Materials (SBOM) from Gradle projects
aws-eks-kubernetes-masterclass - AWS EKS Kubernetes - Masterclass | DevOps, Microservices