{"id":13127,"date":"2019-12-18T10:57:42","date_gmt":"2019-12-18T09:57:42","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/"},"modified":"2019-12-18T10:57:42","modified_gmt":"2019-12-18T09:57:42","slug":"jenkins-x-ecosystem-kaniko-as-image-an-builder","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/","title":{"rendered":"Jenkins X ecosystem: Kaniko as image builder"},"content":{"rendered":"<p>For a few months now, we started a huge project at a customer; build a complete CI\/CD platform for Documentum. The final goal is to create a CI\/CD process for platform and software delivery to reduce as possible the delivery of the releases.<\/p>\n<p>To achieve this goal, 2 main products have been introduced at our customer by our DevOps team: Kubernetes (as the new &#8220;virtualization&#8221; platform) and Jenkins X (for CI\/CD). Based on these 2 brand new tools, multiple other tools are used within the Jenkins X ecosystem such as Kaniko; the new container image builder released by the famous Google Cloud team. Kaniko is part of the Jenkins X ecosystem to build images in the pipelines.<\/p>\n<p>In this series of blogs, we will introduce\/explain all tools used in the Jenkins X ecosystem. Let&#8217;s start by Kaniko:-D!<\/p>\n<h3>Why Kaniko?<\/h3>\n<p>Before Kaniko, we used 2 components to build a new container image: the Docker daemon and a DockerFile. As you know the Docker daemon needs access to the root user on the machine on which it runs. This lead to some security issues in multiple production environments which cannot give root access to the Docker daemon: <a href=\"https:\/\/github.com\/kubernetes\/kubernetes\/issues\/1806\">https:\/\/github.com\/kubernetes\/kubernetes\/issues\/1806<\/a><br \/>\nTo overcome this security issue, Kaniko comes with a solution to build a container image from a DockerFile without the need for the Docker daemon (no root-access).<\/p>\n<h3>How Kaniko works?<\/h3>\n<p>Kaniko runs as a container image (pod) within a Kubernetes cluster. It requires three parameters to create a new image:<\/p>\n<ul>\n<li>a DockerFile<\/li>\n<li>a build context<\/li>\n<li>the name of the registry<\/li>\n<\/ul>\n<p>The Kaniko image is called kaniko executor. Below the process used by the kaniko executor to build a new image:<\/p>\n<ol>\n<li>Kaniko executor pull the image specified in the DockerFile &#8220;FROM&#8221; in the container root file system<\/li>\n<li>Then it executes each DockerFile command and takes a snapshot of the filesystem after each command<\/li>\n<li>For each modification of the base image (FROM field in the DockerFile) a new layer is created and changes the image metadata.<\/li>\n<li>At the end it pushes the new image to the image registry.<\/li>\n<\/ol>\n<p>Below the representation of each step:<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/1kaniko-container-build-flow-1523984393348.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-36187\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/1kaniko-container-build-flow-1523984393348.jpg\" alt=\"\" width=\"640\" height=\"307\" \/><\/a><\/p>\n<h3>Getting started with Kaniko executor<\/h3>\n<p>In our getting started example, we will use the followings:<\/p>\n<ul>\n<li>a Kubernetes cluster hosted in GKE<\/li>\n<li>a personal GitHub repository as a build context<\/li>\n<\/ul>\n<p>Once your cluster is provisioned and your GitHub account is ready for use you can start by creating the Kubernetes service account in GKE as follows:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2019-12-08-at-19.48.00-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2019-12-08-at-19.48.00-1.png\" alt=\"\" width=\"1024\" height=\"444\" class=\"aligncenter size-large wp-image-36189\" \/><\/a> &nbsp;<\/p>\n<p>Grant the service account with storage admin, service account admin and create it:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2019-12-08-at-22.00.11.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2019-12-08-at-22.00.11.png\" alt=\"\" width=\"1024\" height=\"452\" class=\"aligncenter size-large wp-image-36191\" \/><\/a> &nbsp;<\/p>\n<p>Once it has been done, create a JSON key and save it locally as follows:<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2019-12-08-at-22.01.38-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-2019-12-08-at-22.01.38-1.png\" alt=\"\" width=\"567\" height=\"357\" class=\"aligncenter size-full wp-image-36440\" \/><\/a><\/p>\n<p>Rename the key to kaniko-secret.json:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">mehdi@MacBook-Pro: mv [PROJECT_ID]-cd55f597bdf8.json kaniko-secret.json<\/pre>\n<p> &nbsp;<\/p>\n<p>Then create the Kubernetes secret:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">mehdi@MacBook-Pro: kubectl create secret generic kaniko-secret --from-file=kaniko-secret.json\nsecret\/kaniko-secret created<\/pre>\n<p> &nbsp;<\/p>\n<p>Now create your DockerFile and save it into your personal GitHub account: <a href=\"https:\/\/github.com\/MehB\/kaniko-test\">https:\/\/github.com\/MehB\/kaniko-test<\/a><\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">mehdi@MacBook-Pro: echo \"# kaniko-test\" &gt;&gt; README.md\nmehdi@MacBook-Pro: git init\nmehdi@MacBook-Pro: git add .\nmehdi@MacBook-Pro: git commit -m \"Initial Commit\"\nmehdi@MacBook-Pro: git remote add origin https:\/\/github.com\/MehB\/kaniko-test.git\nmehdi@MacBook-Pro: git push -u origin master<\/pre>\n<p> &nbsp;<\/p>\n<p>Create the Kubernetes pod with the following parameters:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">mehdi@MacBook-Pro: vi kaniko-executor.yaml\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: kaniko\nspec:\n  containers:\n  - name: kaniko\n    image: gcr.io\/kaniko-project\/executor:latest\n    args: [\"--dockerfile=DockerFile\",\n            \"--context=git:\/\/github.com\/MehB\/kaniko-test.git#refs\/heads\/master\",\n            \"--destination=gcr.io\/${PROJECT_ID}\/apache:0.0.1\"]\n    volumeMounts:\n      - name: kaniko-secret\n        mountPath: \/secret\n    env:\n      - name: GOOGLE_APPLICATION_CREDENTIALS\n        value: \/secret\/kaniko-secret.json\n  restartPolicy: Never\n  volumes:\n    - name: kaniko-secret\n      secret:\n        secretName: kaniko-secret<\/pre>\n<p> &nbsp;<\/p>\n<p>Start the kaniko-executor pod:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">mehdi@MacBook-Pro: kubectl create -f kaniko-executor-pod.yaml\npod\/kaniko created\nmehdi@MacBook-Pro:kubectl get pods -o wide\nNAME     READY   STATUS    RESTARTS   AGE   IP          NODE                                         NOMINATED NODE   READINESS GATES\nkaniko   1\/1     Running   0          7s    10.36.2.6   gke-kanino-test-default-pool-840d3d88-7fct               <\/pre>\n<p> &nbsp;<\/p>\n<p>You can have a look in the pod logs to verify if all DockerFile commands have been properly done: <\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">mehdi@MacBook-Pro:kubectl logs kaniko\nEnumerating objects: 10, done.\nCounting objects: 100% (10\/10), done.\nCompressing objects: 100% (9\/9), done.\nTotal 10 (delta 0), reused 10 (delta 0), pack-reused 0\nINFO[0026] Taking snapshot of full filesystem...\nINFO[0028] ENV APACHE_RUN_USER www-data\nINFO[0028] ENV APACHE_RUN_GROUP www-data\nINFO[0028] ENV APACHE_LOG_DIR \/var\/log\/apache2\nINFO[0028] EXPOSE 80\nINFO[0028] cmd: EXPOSE\nINFO[0028] Adding exposed port: 80\/tcp\nINFO[0028] CMD [\"\/usr\/sbin\/apache2\", \"-D\", \"FOREGROUND\"]<\/pre>\n<p> &nbsp;<\/p>\n<p>The image is now available in the private registry; in our case the GKE registry \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For a few months now, we started a huge project at a customer; build a complete CI\/CD platform for Documentum. The final goal is to create a CI\/CD process for platform and software delivery to reduce as possible the delivery of the releases. To achieve this goal, 2 main products have been introduced at our [&hellip;]<\/p>\n","protected":false},"author":109,"featured_media":13128,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,1320,1504,1522],"tags":[601,1651,1778,89],"type_dbi":[],"class_list":["post-13127","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","category-devops","category-docker","category-kubernetes","tag-docker","tag-jenkins-x","tag-kaniko","tag-kubernetes"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Jenkins X ecosystem: Kaniko as image builder - dbi Blog<\/title>\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.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Jenkins X ecosystem: Kaniko as image builder\" \/>\n<meta property=\"og:description\" content=\"For a few months now, we started a huge project at a customer; build a complete CI\/CD platform for Documentum. The final goal is to create a CI\/CD process for platform and software delivery to reduce as possible the delivery of the releases. To achieve this goal, 2 main products have been introduced at our [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-12-18T09:57:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/1kaniko-container-build-flow-1523984393348.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"307\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DevOps\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DevOps\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/\"},\"author\":{\"name\":\"DevOps\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735\"},\"headline\":\"Jenkins X ecosystem: Kaniko as image builder\",\"datePublished\":\"2019-12-18T09:57:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/\"},\"wordCount\":529,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/1kaniko-container-build-flow-1523984393348.jpg\",\"keywords\":[\"Docker\",\"Jenkins X\",\"Kaniko\",\"kubernetes\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"DevOps\",\"Docker\",\"Kubernetes\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/\",\"name\":\"Jenkins X ecosystem: Kaniko as image builder - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/1kaniko-container-build-flow-1523984393348.jpg\",\"datePublished\":\"2019-12-18T09:57:42+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/1kaniko-container-build-flow-1523984393348.jpg\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/1kaniko-container-build-flow-1523984393348.jpg\",\"width\":640,\"height\":307},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Jenkins X ecosystem: Kaniko as image builder\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735\",\"name\":\"DevOps\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g\",\"caption\":\"DevOps\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/devops\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Jenkins X ecosystem: Kaniko as image builder - dbi Blog","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.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/","og_locale":"en_US","og_type":"article","og_title":"Jenkins X ecosystem: Kaniko as image builder","og_description":"For a few months now, we started a huge project at a customer; build a complete CI\/CD platform for Documentum. The final goal is to create a CI\/CD process for platform and software delivery to reduce as possible the delivery of the releases. To achieve this goal, 2 main products have been introduced at our [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/","og_site_name":"dbi Blog","article_published_time":"2019-12-18T09:57:42+00:00","og_image":[{"width":640,"height":307,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/1kaniko-container-build-flow-1523984393348.jpg","type":"image\/jpeg"}],"author":"DevOps","twitter_card":"summary_large_image","twitter_misc":{"Written by":"DevOps","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/"},"author":{"name":"DevOps","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735"},"headline":"Jenkins X ecosystem: Kaniko as image builder","datePublished":"2019-12-18T09:57:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/"},"wordCount":529,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/1kaniko-container-build-flow-1523984393348.jpg","keywords":["Docker","Jenkins X","Kaniko","kubernetes"],"articleSection":["Database Administration &amp; Monitoring","DevOps","Docker","Kubernetes"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/","url":"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/","name":"Jenkins X ecosystem: Kaniko as image builder - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/1kaniko-container-build-flow-1523984393348.jpg","datePublished":"2019-12-18T09:57:42+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/1kaniko-container-build-flow-1523984393348.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/1kaniko-container-build-flow-1523984393348.jpg","width":640,"height":307},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/jenkins-x-ecosystem-kaniko-as-image-an-builder\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Jenkins X ecosystem: Kaniko as image builder"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735","name":"DevOps","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g","caption":"DevOps"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/devops\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/13127","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/109"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=13127"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/13127\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/13128"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=13127"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=13127"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=13127"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=13127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}