{"id":35955,"date":"2024-12-06T10:06:15","date_gmt":"2024-12-06T09:06:15","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=35955"},"modified":"2025-01-14T13:48:37","modified_gmt":"2025-01-14T12:48:37","slug":"building-multi-architecture-images-with-gitlab-ci-cd","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/","title":{"rendered":"Building multi-architecture images with GitLab CI\/CD"},"content":{"rendered":"\n<p>Building multi-architecture images become more and more useful. Indeed, many recent computers use ARM processors architecture. Examples include MacBooks using M(x) processors, and Amazon EC2 instances using <a href=\"https:\/\/aws.amazon.com\/fr\/ec2\/graviton\/\">AWS Graviton<\/a> processors.<\/p>\n\n\n\n<p>However, the diversification of processor architectures adds a new level of complexity to the creation of container images. Indeed, the construction has to cope with different instruction sets.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-docker-buildx-the-solution-for-building-multi-architecture-images\">Docker buildx, the solution for building multi-architecture images<\/h2>\n\n\n\n<p>For the <a href=\"https:\/\/gitlab.com\/yak4all\/yak_core\">YaK<\/a> project, we want to make amd64 (x86) and arm64 images available using GitLab CI\/CD.<\/p>\n\n\n\n<p>In order to create a build compatible with several architectures, I had to use \u201cdocker buildx\u201d in my .gitlab-ci.yml file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>build:\n  image: docker:latest\n  stage: build\n  services:\n    - docker:dind\n  before_script:\n    - docker run --rm --privileged multiarch\/qemu-user-static --reset -p yes\n    - docker buildx create --name yakbuilder --use\n  script:\n    - docker buildx build --pull --builder=yakbuilder --platform linux\/amd64,linux\/arm64 -t &#091;IMG]:&#091;TAG] --push .\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-how-it-works\">How it works:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In the <code>\"before_script\"<\/code> section , I initialize a QEMU container to emulate ARM architecture and to create a buildx context using the QEMU container<\/li>\n\n\n\n<li>In the <code>\"script\"<\/code> section itself, instead of a simple &#8220;docker build&#8221;, I use the <code>\"docker <strong>buildx<\/strong> build\"<\/code> command<\/li>\n\n\n\n<li>I also pass the buildx context created in the <code>\"before_script\"<\/code> with the <code>--builder<\/code> flag<\/li>\n\n\n\n<li>Finally, I add the list of architectures required for the build with the <code>--platform<\/code> flag<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-build-result\">Build Result<\/h2>\n\n\n\n<p>With this method, the build is slower. That&#8217;s normal as several images are created (one per architecture) instead of just one.<\/p>\n\n\n\n<p>The result can be seen in the GitLab container registry:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"428\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/11\/Container-registry-1024x428.png\" alt=\"container registry details\" class=\"wp-image-35958\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/11\/Container-registry-1024x428.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/11\/Container-registry-300x125.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/11\/Container-registry-768x321.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/11\/Container-registry.png 1070w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Now, below the image tag, a small \u201cindex\u201d label is shown. This refers to the fact that several images are available for this tag. During the image pull, the container engine will choose the image version corresponding to its architecture.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion<\/h2>\n\n\n\n<p>With <strong>buildx<\/strong> and QEMU in GitLab CI\/CD, building multi-architecture images is easy. You can manage different processor architectures and meet the needs of a wide range of users and ensure the compatibility of your container images.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Building multi-architecture images become more and more useful. Indeed, many recent computers use ARM processors architecture. Examples include MacBooks using M(x) processors, and Amazon EC2 instances using AWS Graviton processors. However, the diversification of processor architectures adds a new level of complexity to the creation of container images. Indeed, the construction has to cope with [&hellip;]<\/p>\n","protected":false},"author":72,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1320,1504,1522,2721],"tags":[2335,3028,3484,3486,3485],"type_dbi":[],"class_list":["post-35955","post","type-post","status-publish","format-standard","hentry","category-devops","category-docker","category-kubernetes","category-yak","tag-arm","tag-gitlabci-cd","tag-image-buid","tag-multi-architecture","tag-x86"],"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>Building multi-architecture images with GitLab CI\/CD - dbi Blog<\/title>\n<meta name=\"description\" content=\"How to simply build multi-architecture image with GitLab CI\/CD to maximize compatibility with arm64 and amd64 CPUs.\" \/>\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\/building-multi-architecture-images-with-gitlab-ci-cd\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building multi-architecture images with GitLab CI\/CD\" \/>\n<meta property=\"og:description\" content=\"How to simply build multi-architecture image with GitLab CI\/CD to maximize compatibility with arm64 and amd64 CPUs.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-12-06T09:06:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-14T12:48:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/11\/Container-registry.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1070\" \/>\n\t<meta property=\"og:image:height\" content=\"447\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Nicolas Meunier\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nicolas Meunier\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 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\/building-multi-architecture-images-with-gitlab-ci-cd\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/\"},\"author\":{\"name\":\"Nicolas Meunier\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/2e08c09a2f083004587b54128684fefe\"},\"headline\":\"Building multi-architecture images with GitLab CI\/CD\",\"datePublished\":\"2024-12-06T09:06:15+00:00\",\"dateModified\":\"2025-01-14T12:48:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/\"},\"wordCount\":290,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/11\/Container-registry-1024x428.png\",\"keywords\":[\"ARM\",\"GitlabCI\/CD\",\"Image buid\",\"multi-architecture\",\"x86\"],\"articleSection\":[\"DevOps\",\"Docker\",\"Kubernetes\",\"YaK\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/\",\"name\":\"Building multi-architecture images with GitLab CI\/CD - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/11\/Container-registry-1024x428.png\",\"datePublished\":\"2024-12-06T09:06:15+00:00\",\"dateModified\":\"2025-01-14T12:48:37+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/2e08c09a2f083004587b54128684fefe\"},\"description\":\"How to simply build multi-architecture image with GitLab CI\/CD to maximize compatibility with arm64 and amd64 CPUs.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/11\/Container-registry.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/11\/Container-registry.png\",\"width\":1070,\"height\":447},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Building multi-architecture images with GitLab CI\/CD\"}]},{\"@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\/2e08c09a2f083004587b54128684fefe\",\"name\":\"Nicolas Meunier\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/cc2139acc6c64bddf3827e2faaaa70f227faafc288457fc351a4a836813112a8?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cc2139acc6c64bddf3827e2faaaa70f227faafc288457fc351a4a836813112a8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cc2139acc6c64bddf3827e2faaaa70f227faafc288457fc351a4a836813112a8?s=96&d=mm&r=g\",\"caption\":\"Nicolas Meunier\"},\"description\":\"Nicolas Meunier has more than 20 years of experience in IT web technologies as well as in development. He is specialized in Cloud solutions such as CI\/CD. His expertise also includes Kubernetes, Docker, Jenkins-X and Azure Devops. Florence Porret (FP is IT Consultant in Cloud solutions. Prior to joining dbi services, Nicolas Meunier was developer and maintainer of a CI\/CD pipelines at CEGID in Paris. He also worked as Lead Developer at KPMG. Florence Porret (FP holds a superior technical diploma in IT development. His branch-related experience covers software and cloud platform architecture.\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/nicolasmeunier\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Building multi-architecture images with GitLab CI\/CD - dbi Blog","description":"How to simply build multi-architecture image with GitLab CI\/CD to maximize compatibility with arm64 and amd64 CPUs.","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\/building-multi-architecture-images-with-gitlab-ci-cd\/","og_locale":"en_US","og_type":"article","og_title":"Building multi-architecture images with GitLab CI\/CD","og_description":"How to simply build multi-architecture image with GitLab CI\/CD to maximize compatibility with arm64 and amd64 CPUs.","og_url":"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/","og_site_name":"dbi Blog","article_published_time":"2024-12-06T09:06:15+00:00","article_modified_time":"2025-01-14T12:48:37+00:00","og_image":[{"width":1070,"height":447,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/11\/Container-registry.png","type":"image\/png"}],"author":"Nicolas Meunier","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Nicolas Meunier","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/"},"author":{"name":"Nicolas Meunier","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/2e08c09a2f083004587b54128684fefe"},"headline":"Building multi-architecture images with GitLab CI\/CD","datePublished":"2024-12-06T09:06:15+00:00","dateModified":"2025-01-14T12:48:37+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/"},"wordCount":290,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/11\/Container-registry-1024x428.png","keywords":["ARM","GitlabCI\/CD","Image buid","multi-architecture","x86"],"articleSection":["DevOps","Docker","Kubernetes","YaK"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/","url":"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/","name":"Building multi-architecture images with GitLab CI\/CD - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/11\/Container-registry-1024x428.png","datePublished":"2024-12-06T09:06:15+00:00","dateModified":"2025-01-14T12:48:37+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/2e08c09a2f083004587b54128684fefe"},"description":"How to simply build multi-architecture image with GitLab CI\/CD to maximize compatibility with arm64 and amd64 CPUs.","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/11\/Container-registry.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2024\/11\/Container-registry.png","width":1070,"height":447},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/building-multi-architecture-images-with-gitlab-ci-cd\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Building multi-architecture images with GitLab CI\/CD"}]},{"@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\/2e08c09a2f083004587b54128684fefe","name":"Nicolas Meunier","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/cc2139acc6c64bddf3827e2faaaa70f227faafc288457fc351a4a836813112a8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cc2139acc6c64bddf3827e2faaaa70f227faafc288457fc351a4a836813112a8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cc2139acc6c64bddf3827e2faaaa70f227faafc288457fc351a4a836813112a8?s=96&d=mm&r=g","caption":"Nicolas Meunier"},"description":"Nicolas Meunier has more than 20 years of experience in IT web technologies as well as in development. He is specialized in Cloud solutions such as CI\/CD. His expertise also includes Kubernetes, Docker, Jenkins-X and Azure Devops. Florence Porret (FP is IT Consultant in Cloud solutions. Prior to joining dbi services, Nicolas Meunier was developer and maintainer of a CI\/CD pipelines at CEGID in Paris. He also worked as Lead Developer at KPMG. Florence Porret (FP holds a superior technical diploma in IT development. His branch-related experience covers software and cloud platform architecture.","url":"https:\/\/www.dbi-services.com\/blog\/author\/nicolasmeunier\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/35955","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\/72"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=35955"}],"version-history":[{"count":8,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/35955\/revisions"}],"predecessor-version":[{"id":36168,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/35955\/revisions\/36168"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=35955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=35955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=35955"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=35955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}