{"id":8066,"date":"2024-02-29T12:02:10","date_gmt":"2024-02-29T06:32:10","guid":{"rendered":"https:\/\/innovationm.co\/?p=8066"},"modified":"2024-02-29T12:02:10","modified_gmt":"2024-02-29T06:32:10","slug":"dockerization-of-java-applications-using-google-jib-plugin","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/","title":{"rendered":"Dockerization of Java applications using Google Jib Plugin"},"content":{"rendered":"<h3 id=\"m_3fdf45d0-7aac-49b2-9e33-ad4e7482e261\" style=\"text-align: justify;\">Prerequisites<\/h3>\n<p id=\"m_e03fc015-dd5d-4a48-a518-569e108b7a87\" style=\"text-align: justify;\">Basic docker knowledge &amp; commands, can go through this blog <a href=\"https:\/\/www.google.com\/url?q=https:\/\/innovationm.co\/docker-tutorial-for-beginners\/&amp;source=gmail-html&amp;ust=1709269470514000&amp;usg=AOvVaw3uN3ebeSrWmx4uvtgVN2B9\" target=\"_blank\" rel=\"noopener noreferrer\">Docker-For-Beginners<\/a> by InnovationM.<\/p>\n<h3 id=\"m_5bf5b1d0-7fec-465b-9f4c-6d3932d60ee1\" style=\"text-align: justify;\">Introduction<\/h3>\n<p id=\"m_9b7071b3-7e54-468b-9af0-06b96442a85c\" style=\"text-align: justify;\">In this blog I will guide you step-by-step how to use google jib plugin with docker.<\/p>\n<h3 id=\"m_c53892e9-af39-4521-b85d-e9049a96924c\" style=\"text-align: justify;\">What is Jib ?<\/h3>\n<p id=\"m_46d8c92a-327c-4e5e-acab-f6667d0f2dd9\" style=\"text-align: justify;\">Jib is part of Google Container Tools which builds optimized Docker and OCI images for your java application and push them to your public or private docker repositories without the need for Docker daemon.<\/p>\n<h3 id=\"m_5f1b46e8-cd81-4f0e-aee1-09a4a70fb502\" style=\"text-align: justify;\">Why Jib?<\/h3>\n<p id=\"m_6f539f91-de3c-46c2-bef6-f70c2db5205e\" style=\"text-align: justify;\">So in order to know what is jib and how to use it, you need to know why we need Jib in the first place.<\/p>\n<p id=\"m_6609edeb-7da0-4884-b465-eb750a001dcf\" style=\"text-align: justify;\">As we already know docker containers are bringing developers closer than ever to<\/p>\n<p style=\"text-align: justify;\"><mark class=\"m_highlight-yellow\"><em>| Write once, run anywhere<\/em><\/mark><\/p>\n<p id=\"m_d1570c90-cce9-4a62-9250-28b5393a0bd3\" style=\"text-align: justify;\">What we get is the docker image which can be run anywhere which makes deployment easy.<\/p>\n<p id=\"m_941587c2-e0b2-4088-9afb-8207fa1909e9\" style=\"text-align: justify;\">But still containerizing a Java application is no simple task.<\/p>\n<ul id=\"m_27ec11dc-ad3c-46fa-8a3f-3380ea21bdf5\" class=\"m_bulleted-list\" style=\"text-align: justify;\">\n<li>First you have to create a file known as DockerFile<\/li>\n<li>Run that file using docker build command to build the image<\/li>\n<li>Wait for the build to complete<\/li>\n<li>Finally push the image to the remote public\/private repository<\/li>\n<\/ul>\n<ul id=\"m_b955fa01-e11a-4e6f-943d-42d6568ca217\" class=\"m_bulleted-list\" style=\"text-align: justify;\"><\/ul>\n<ul id=\"m_38fd6012-ba0b-47d9-b50e-134572729fbd\" class=\"m_bulleted-list\" style=\"text-align: justify;\"><\/ul>\n<p id=\"m_56154add-5a03-4d9f-a842-b46fbf99c2db\" style=\"text-align: justify;\">So why should the developer be concerned with this, and this gets tedious in the case suppose you have a microservice application, so you will have to repeat the same process for all microservices you are working on.<\/p>\n<p id=\"m_a9ed047b-d234-4a48-b633-564190dfe6ea\" style=\"text-align: justify;\">To address this challenge, google made an open source java containerizer that lets Java developers build containers using the Java tools they know.<\/p>\n<p id=\"m_57ce4113-2224-4ac4-92d3-406653e0c9f4\" style=\"text-align: justify;\">Jib is a fast and simple container image builder that handles all the steps of packaging your application into a container image. It does not require you to write a Dockerfile or have docker installed, and it is directly integrated into <a href=\"https:\/\/www.google.com\/url?q=https:\/\/github.com\/GoogleContainerTools\/jib\/tree\/master\/jib-maven-plugin&amp;source=gmail-html&amp;ust=1709269470514000&amp;usg=AOvVaw1mfHJ5rc0WTO1csP0epVid\" target=\"_blank\" rel=\"noopener noreferrer\">Maven<\/a> and <a href=\"https:\/\/www.google.com\/url?q=https:\/\/github.com\/GoogleContainerTools\/jib\/tree\/master\/jib-gradle-plugin&amp;source=gmail-html&amp;ust=1709269470514000&amp;usg=AOvVaw1dW0qdcqww1rbYmS1xbIKV\" target=\"_blank\" rel=\"noopener noreferrer\">Gradle <\/a>\u0094<wbr \/>just add the plugin to your build and you&#8217;ll have your Java application containerized in no time.<\/p>\n<p id=\"m_8581aaec-4b31-4bcb-a9e3-03e037c46bd9\" style=\"text-align: justify;\">Here is the visual representation of traditional docker flow vs jib flow :-<\/p>\n<p id=\"m_32526d17-44e2-4ebe-81f3-557c2375ff4a\" style=\"text-align: justify;\"><strong>Docker build flow:<\/strong><\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhWjpSVrdmaCqentDs9pEcLp4YK-a-yjylTc1r3Vy-UOFkeyEdd_w0PV_GkfcDe0KzMJR6I6cBbokpUtfmKoy20rzI2DKIq3-tJH9-owHRGaX7XXlBT2uVJmGTwzD1GdxVsabxcRWBGbmk\/s1600\/docker_build_flow.png\" width=\"659\" height=\"121\" \/><strong>Jib build flow:<\/strong><\/p>\n<p><img decoding=\"async\" class=\"\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgCP39hcV1STjszo_vZ7F-mYZ5PHYUN_Xu2gYz_AEdzEpYFL0kA2g8k7G3dBe89KPfxLPx4oEEQaSsbeM9aBhlSBL_eqDxCDJQ_zBUybgG91rlSNzp28Z-qBsY20FMDZ2neeLVK2EKthC0\/s1600\/jib_build_flow.png\" width=\"730\" height=\"57\" \/><\/p>\n<p id=\"m_48a69d7d-d5f7-4519-90df-9b311b0b2448\" style=\"text-align: justify;\">See, all those steps<\/p>\n<ol id=\"m_50a87b34-7a8f-439a-bea4-e6f1a22d6617\" class=\"m_numbered-list\" style=\"text-align: justify;\" start=\"1\" type=\"1\">\n<li>Building the JAR and creating the Dockerfile<\/li>\n<li>then using both via docker command to create the image in your local machine<\/li>\n<li>then finally pushing to your public\/private registry like Docker Hub Registry, Google Container Registry <strong> , <\/strong>Amazon Elastic Container Registry<\/li>\n<\/ol>\n<ol id=\"m_6fbaef59-8880-4fe3-bece-7173eaa58fb7\" class=\"m_numbered-list\" style=\"text-align: justify;\" start=\"2\" type=\"1\"><\/ol>\n<ol id=\"m_a458c138-89b0-4dfe-a23e-4719cec53d85\" class=\"m_numbered-list\" style=\"text-align: justify;\" start=\"3\" type=\"1\"><\/ol>\n<p id=\"m_9067c422-002a-4a99-9a6b-af0051fa5c38\" style=\"text-align: justify;\">are all gone. Jib is implemented in Java and runs as part of your Maven or Gradle build. You do not need to maintain a Dockerfile, run a Docker daemon, or even worry about creating a fat JAR with all its dependencies. Since Jib tightly integrates with your Java build, it has access to all the necessary information to package your application.<\/p>\n<h3 id=\"m_19b16477-df1f-4526-a554-90659334700c\" style=\"text-align: justify;\">How to use Jib ?<\/h3>\n<p id=\"m_ca46c0bf-7dd9-432c-9b40-5df4f90c8a03\" style=\"text-align: justify;\">In this blog I will be showing you using Maven plugin.<\/p>\n<h3 style=\"text-align: justify;\">1. Add this plugin in your <code>&lt;plugins&gt;<\/code> attribute in pom.xml<\/h3>\n<pre id=\"m_d3bb9c0c-c803-4b94-882a-cd1aa40db841\" class=\"m_code\"><code class=\"m_language-XML\">&lt;plugin&gt;\r\n    &lt;groupId&gt;com.google.cloud.<wbr \/>tools&lt;\/groupId&gt;\r\n    &lt;artifactId&gt;jib-maven-plugin&lt;\/<wbr \/>artifactId&gt;\r\n    &lt;version&gt;3.4.0&lt;\/version&gt;\r\n    &lt;configuration&gt;\r\n        &lt;to&gt;\r\n            &lt;image&gt;<a href=\"https:\/\/www.google.com\/url?q=http:\/\/docker.io\/%257BUsername%257D\/$%257Bproject.artifactId%257D:$%257Bproject.version%257D&amp;source=gmail-html&amp;ust=1709269470514000&amp;usg=AOvVaw0mVGoTtms5td6j1lcc9JRo\" target=\"_blank\" rel=\"noopener noreferrer\">docker.io\/{Username}\/${<wbr \/>project.artifactId}:${project.<wbr \/>version}<\/a>&lt;\/image&gt;\r\n            &lt;tags&gt;\r\n                &lt;tag&gt;latest&lt;\/tag&gt;\r\n            &lt;\/tags&gt;\r\n        &lt;\/to&gt;\r\n    &lt;\/configuration&gt;\r\n    &lt;executions&gt;\r\n        &lt;execution&gt;\r\n            &lt;phase&gt;package&lt;\/phase&gt;\r\n            &lt;goals&gt;\r\n                &lt;goal&gt;build&lt;\/goal&gt;\r\n            &lt;\/goals&gt;\r\n        &lt;\/execution&gt;\r\n    &lt;\/executions&gt;\r\n&lt;\/plugin&gt;<\/code><\/pre>\n<p style=\"text-align: justify;\"><strong>Note<\/strong>:<\/p>\n<ul style=\"text-align: justify;\">\n<li>Make sure your project artifact Id is in small letters, as per docker image naming conventions.<\/li>\n<li>Here I am using Docker Hub, so docker.io but you can change accordingly for GCR or ECR<\/li>\n<li>Be sure to put your docker hub registry username in place of {Username}\n<p id=\"m_13a73289-1199-4f39-9c06-54c17452ad48\">In above code :-<\/p>\n<ul id=\"m_d441223b-ee69-4a77-b427-b79503d180d0\" class=\"m_bulleted-list\">\n<li><code>&lt;image&gt;<\/code> defines the location where your image will be created where image name &amp; version is going to be your project artifactId &amp; version<\/li>\n<\/ul>\n<ul id=\"m_d2b0491e-2520-46f5-97e9-13814e66819f\" class=\"m_bulleted-list\">\n<li><code>&lt;executions&gt;<\/code> defines that jib will run during your maven package phase. Whenever you run <code>mvn package<\/code> command, jib will run.<\/li>\n<\/ul>\n<h3 id=\"m_121f012c-fb41-4a5c-a617-1027d6d005a9\">2. But how it can push in your private\/public repository unless it has the credentials to your registry account.<\/h3>\n<ul id=\"m_1ece1884-4bb0-45bf-b830-277ff5ce8b6a\" class=\"m_bulleted-list\">\n<li>There are multiple ways to provide credentials to jib. You can go through official jib documentation to configure this \u0091\u0089 <a href=\"https:\/\/www.google.com\/url?q=https:\/\/github.com\/GoogleContainerTools\/jib\/tree\/master\/jib-maven-plugin%23authentication-methods&amp;source=gmail-html&amp;ust=1709269470514000&amp;usg=AOvVaw2cgkfUy0d4JCYPg_hdY5z4\" target=\"_blank\" rel=\"noopener noreferrer\">Jib Authentication Methods<\/a><\/li>\n<\/ul>\n<ul id=\"m_6d819304-6724-4e67-aaf0-169e33a9427e\" class=\"m_bulleted-list\">\n<li>If you have docker installed then it can automatically take your credentials.<\/li>\n<\/ul>\n<ul id=\"m_d263cbd0-ddc7-4a6c-8926-accab0d282c7\" class=\"m_bulleted-list\">\n<li>But if it doesn&#8217;t work then Registry credentials can be added to your\u00c2 Maven settings. This is already explained in the link above, but still lets see<\/li>\n<\/ul>\n<ol id=\"m_e153efcd-ca4a-45a7-9507-94d9e759aecf\" class=\"m_numbered-list\" start=\"1\" type=\"1\">\n<li>Navigate to your .m2 repository and create a new file named \u00e2\u0080\u009csettings.xml\u00e2\u0080\u009d<\/li>\n<\/ol>\n<ol id=\"m_fd76e4da-db2c-493a-937f-b91de4331279\" class=\"m_numbered-list\" start=\"2\" type=\"1\">\n<li>Add this code to your file<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<pre id=\"m_a7afba6c-4dac-4ebd-ab7e-4301b6ee1ed0\" class=\"m_code\"><code class=\"m_language-XML\">&lt;settings&gt;\r\n  &lt;servers&gt;\r\n    &lt;server&gt;\r\n      &lt;id&gt;<a href=\"https:\/\/www.google.com\/url?q=http:\/\/registry-1.docker.io&amp;source=gmail-html&amp;ust=1709269470514000&amp;usg=AOvVaw0mA5j90gGWtDyDNcjtRp-8\" target=\"_blank\" rel=\"noopener noreferrer\">registry-1.docker.io<\/a>&lt;\/id&gt;\r\n      &lt;username&gt;{Username}&lt;\/<wbr \/>username&gt;\r\n      &lt;password&gt;{Create token in your docker hub and put it here}&lt;\/password&gt;\r\n    &lt;\/server&gt;\r\n  &lt;\/servers&gt;\r\n&lt;\/settings&gt;<\/code><\/pre>\n<ol id=\"m_e153efcd-ca4a-45a7-9507-94d9e759aecf\" class=\"m_numbered-list\" style=\"text-align: justify;\" start=\"1\" type=\"1\"><\/ol>\n<ol id=\"m_fd76e4da-db2c-493a-937f-b91de4331279\" class=\"m_numbered-list\" style=\"text-align: justify;\" start=\"2\" type=\"1\"><\/ol>\n<ol id=\"m_3bea8723-f935-4102-8424-a707e9d07409\" class=\"m_numbered-list\" style=\"text-align: justify;\" start=\"3\" type=\"1\">\n<li>Now jib will use this to authenticate.<\/li>\n<\/ol>\n<p style=\"text-align: justify;\"><em><strong>Note<\/strong><\/em>: using this method is not recommended, as it is hardcoding your credentials in a file. Google recommends using Docker Credential Helpers.<\/p>\n<h3 id=\"m_a1a97232-db51-44ec-a9c8-d90f202123d6\" style=\"text-align: justify;\">3. Now run <code>mvn package<\/code> command, then after that execute <code>mvn jib:build<\/code> command.<\/h3>\n<p style=\"text-align: justify;\">You should see process going on, jib usually takes some time. In a microservices application, depending upon your number of services, it can take minutes.<\/p>\n<h3 id=\"m_ac66538c-1bbf-447b-ac12-309831d68e47\" style=\"text-align: justify;\">Use Jib in a Microservices application using Profiles<\/h3>\n<ul id=\"m_6fbc8727-99a6-4e3d-bec6-1492ab2d499c\" class=\"m_bulleted-list\" style=\"text-align: justify;\">\n<li>Put the plugin in <code>&lt;pluginManagement&gt;<\/code> of your parent pom.xml<\/li>\n<\/ul>\n<ul id=\"m_e4aae03e-4ad6-41cc-9edf-ea2473f7ecf5\" class=\"m_bulleted-list\" style=\"text-align: justify;\">\n<li>Put this code in <code>&lt;project&gt;<\/code> attribute of all your services pom.xml<\/li>\n<\/ul>\n<pre id=\"m_c23b4553-bff3-4b3f-bb09-909d1ebcbff8\" class=\"m_code\"><code class=\"m_language-XML\">&lt;profiles&gt;\r\n    &lt;profile&gt;\r\n        &lt;id&gt;build-docker-image&lt;\/id&gt;\r\n        &lt;build&gt;\r\n            &lt;plugins&gt;\r\n                &lt;plugin&gt;\r\n                    &lt;groupId&gt;com.google.cloud.<wbr \/>tools&lt;\/groupId&gt;\r\n                    &lt;artifactId&gt;jib-maven-plugin&lt;\/<wbr \/>artifactId&gt;\r\n                    &lt;version&gt;3.4.0&lt;\/version&gt;\r\n                &lt;\/plugin&gt;\r\n            &lt;\/plugins&gt;\r\n        &lt;\/build&gt;\r\n    &lt;\/profile&gt;\r\n&lt;\/profiles&gt;<\/code><\/pre>\n<ul id=\"m_3c8cd043-9aa5-4a80-9edb-3afb58bbf2b6\" class=\"m_bulleted-list\" style=\"text-align: justify;\">\n<li style=\"text-align: justify;\">Now inside your parent directory execute <code>mvn package -P build-docker-image<\/code> command, which will package &amp; build + push image to your registry for all services with the above profile code.<\/li>\n<\/ul>\n<ul id=\"m_4a25332c-9ebf-4c37-aa2e-7110a9637f3a\" class=\"m_bulleted-list\" style=\"text-align: justify;\">\n<li style=\"text-align: justify;\">This make easy as you don&#8217;t have to manually go, execute Dockerfile for services and push them.<\/li>\n<\/ul>\n<h3 id=\"m_1c813990-fa2f-42bd-9934-932e92840786\" style=\"text-align: justify;\">Summary<\/h3>\n<div style=\"text-align: justify;\">\n<p id=\"m_9ae8c1e4-b29d-45fd-a599-c89128b387cc\" style=\"text-align: justify;\">Google&#8217;s Jib is a plugin that simplifies the process of containerizing Java applications for Docker. It eliminates the need for a Dockerfile, Docker daemon, or creating a fat JAR with all dependencies. Jib builds optimized Docker and OCI images and pushes them to public or private Docker repositories. It integrates directly into Maven and Gradle, and can be configured to run during the Maven package phase. Jib can automatically use Docker credentials, or they can be added to Maven settings. The plugin can also be used in a microservices application using profiles.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Prerequisites Basic docker knowledge &amp; commands, can go through this blog Docker-For-Beginners by InnovationM. Introduction In this blog I will guide you step-by-step how to use google jib plugin with docker. What is Jib ? Jib is part of Google Container Tools which builds optimized Docker and OCI images for your java application and push [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":8070,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[963,960,959,962,256,961],"tags":[30,723,751,899,901,900,955,957,224,958],"class_list":["post-8066","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-build-automation","category-containerization","category-docker","category-gradle","category-java-application","category-maven","tag-application","tag-blogging","tag-blogs","tag-docker","tag-docker-beginner","tag-docker-blog","tag-gradle","tag-gradle-integration","tag-java","tag-maven"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Dockerization of Java applications using Google Jib Plugin - InnovationM - Blog<\/title>\n<meta name=\"description\" content=\"Learn how to streamline your Java application containerization process with Google&#039;s Jib plugin and Docker. This step-by-step guide eliminates the need for Dockerfiles and daemon, simplifying image creation and pushing to repositories. Integrated seamlessly with Maven and Gradle, Jib offers optimized Docker images, making deployment a breeze.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dockerization of Java applications using Google Jib Plugin - InnovationM - Blog\" \/>\n<meta property=\"og:description\" content=\"Learn how to streamline your Java application containerization process with Google&#039;s Jib plugin and Docker. This step-by-step guide eliminates the need for Dockerfiles and daemon, simplifying image creation and pushing to repositories. Integrated seamlessly with Maven and Gradle, Jib offers optimized Docker images, making deployment a breeze.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-29T06:32:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2024\/02\/Blog-Banner-1-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2240\" \/>\n\t<meta property=\"og:image:height\" content=\"1260\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/dockerization-of-java-applications-using-google-jib-plugin\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/dockerization-of-java-applications-using-google-jib-plugin\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"Dockerization of Java applications using Google Jib Plugin\",\"datePublished\":\"2024-02-29T06:32:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/dockerization-of-java-applications-using-google-jib-plugin\\\/\"},\"wordCount\":874,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/dockerization-of-java-applications-using-google-jib-plugin\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/Blog-Banner-1-2.png\",\"keywords\":[\"Application\",\"blogging\",\"blogs\",\"docker\",\"docker beginner\",\"docker blog\",\"gradle\",\"Gradle integration\",\"java\",\"Maven\"],\"articleSection\":[\"build automation\",\"Containerization\",\"Docker\",\"gradle\",\"Java Application\",\"maven\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/dockerization-of-java-applications-using-google-jib-plugin\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/dockerization-of-java-applications-using-google-jib-plugin\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/dockerization-of-java-applications-using-google-jib-plugin\\\/\",\"name\":\"Dockerization of Java applications using Google Jib Plugin - InnovationM - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/dockerization-of-java-applications-using-google-jib-plugin\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/dockerization-of-java-applications-using-google-jib-plugin\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/Blog-Banner-1-2.png\",\"datePublished\":\"2024-02-29T06:32:10+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"description\":\"Learn how to streamline your Java application containerization process with Google's Jib plugin and Docker. This step-by-step guide eliminates the need for Dockerfiles and daemon, simplifying image creation and pushing to repositories. Integrated seamlessly with Maven and Gradle, Jib offers optimized Docker images, making deployment a breeze.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/dockerization-of-java-applications-using-google-jib-plugin\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/dockerization-of-java-applications-using-google-jib-plugin\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/dockerization-of-java-applications-using-google-jib-plugin\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/Blog-Banner-1-2.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/Blog-Banner-1-2.png\",\"width\":2240,\"height\":1260,\"caption\":\"Dockerization of Java applications using Google Jib Plugin\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/dockerization-of-java-applications-using-google-jib-plugin\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dockerization of Java applications using Google Jib Plugin\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dockerization of Java applications using Google Jib Plugin - InnovationM - Blog","description":"Learn how to streamline your Java application containerization process with Google's Jib plugin and Docker. This step-by-step guide eliminates the need for Dockerfiles and daemon, simplifying image creation and pushing to repositories. Integrated seamlessly with Maven and Gradle, Jib offers optimized Docker images, making deployment a breeze.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/","og_locale":"en_US","og_type":"article","og_title":"Dockerization of Java applications using Google Jib Plugin - InnovationM - Blog","og_description":"Learn how to streamline your Java application containerization process with Google's Jib plugin and Docker. This step-by-step guide eliminates the need for Dockerfiles and daemon, simplifying image creation and pushing to repositories. Integrated seamlessly with Maven and Gradle, Jib offers optimized Docker images, making deployment a breeze.","og_url":"https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/","og_site_name":"InnovationM - Blog","article_published_time":"2024-02-29T06:32:10+00:00","og_image":[{"width":2240,"height":1260,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2024\/02\/Blog-Banner-1-2.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"Dockerization of Java applications using Google Jib Plugin","datePublished":"2024-02-29T06:32:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/"},"wordCount":874,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2024\/02\/Blog-Banner-1-2.png","keywords":["Application","blogging","blogs","docker","docker beginner","docker blog","gradle","Gradle integration","java","Maven"],"articleSection":["build automation","Containerization","Docker","gradle","Java Application","maven"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/","url":"https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/","name":"Dockerization of Java applications using Google Jib Plugin - InnovationM - Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2024\/02\/Blog-Banner-1-2.png","datePublished":"2024-02-29T06:32:10+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"description":"Learn how to streamline your Java application containerization process with Google's Jib plugin and Docker. This step-by-step guide eliminates the need for Dockerfiles and daemon, simplifying image creation and pushing to repositories. Integrated seamlessly with Maven and Gradle, Jib offers optimized Docker images, making deployment a breeze.","breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2024\/02\/Blog-Banner-1-2.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2024\/02\/Blog-Banner-1-2.png","width":2240,"height":1260,"caption":"Dockerization of Java applications using Google Jib Plugin"},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/dockerization-of-java-applications-using-google-jib-plugin\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Dockerization of Java applications using Google Jib Plugin"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/8066","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=8066"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/8066\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/8070"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=8066"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=8066"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=8066"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}