{"id":1699,"date":"2025-02-05T22:18:41","date_gmt":"2025-02-05T22:18:41","guid":{"rendered":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2025\/02\/05\/docker-bake-is-now-generally-available-in-docker-desktop-4-38\/"},"modified":"2025-02-05T22:18:41","modified_gmt":"2025-02-05T22:18:41","slug":"docker-bake-is-now-generally-available-in-docker-desktop-4-38","status":"publish","type":"post","link":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2025\/02\/05\/docker-bake-is-now-generally-available-in-docker-desktop-4-38\/","title":{"rendered":"Docker Bake is Now Generally Available in Docker Desktop 4.38!"},"content":{"rendered":"<p>We\u2019re excited to announce the General Availability of <strong>Docker Bake<\/strong> with <a href=\"https:\/\/www.docker.com\/blog\/docker-desktop-4-38\/\">Docker Desktop 4.38<\/a>! This powerful build orchestration tool takes the hassle out of managing complex builds and offers simplicity, flexibility, and performance for teams of all sizes.<\/p>\n<h2 class=\"wp-block-heading\">What is Docker Bake?<\/h2>\n<p>Docker Bake is an orchestration tool that streamlines Docker builds, similar to how Compose simplifies managing runtime environments. With Bake, you can define build stages and deployment environments in a declarative file, making complex builds easier to manage. It also leverages BuildKit\u2019s parallelization and optimization features to speed up build times.<\/p>\n<p>While Dockerfiles are excellent for defining image build steps, teams often need to build multiple images and execute helper tasks like testing, linting, and code generation. Traditionally, this meant juggling numerous docker build commands with their own options and arguments \u2013 a tedious and error-prone process.<\/p>\n<p>Bake changes the game by introducing a declarative file format that encapsulates all options and image dependencies, referred to as <a href=\"https:\/\/docs.docker.com\/build\/bake\/targets\/\" target=\"_blank\"><strong>targets<\/strong><\/a>. Additionally, Bake\u2019s ability to parallelize and deduplicate work ensures faster and more efficient builds.<\/p>\n<h2 class=\"wp-block-heading\">Why should you use Bake?<\/h2>\n<h3 class=\"wp-block-heading\">Challenges with complex Docker Build configuration:<\/h3>\n<p>Managing long, complex build commands filled with countless flags and environment variables.<\/p>\n<p>Tedious workflows for building multiple images.<\/p>\n<p>Difficulty declaring builds for specific targets or environments.<\/p>\n<p>Requires a script or 3rd-party tool to make things manageable<\/p>\n<p>Docker Bake tackles these challenges with a better way to manage complex builds with a simple, declarative approach.<\/p>\n<h3 class=\"wp-block-heading\">Key benefits of Docker Bake<\/h3>\n<p><strong>Simplicity<\/strong>: Replace complex chains of Docker build commands and scripts with a single docker buildx bake command while maintaining clear, version-controlled configuration files that are easy to understand and modify.<\/p>\n<p><strong>Flexibility<\/strong>: Express sophisticated build logic through HCL syntax and matrix builds, enabling dynamic configurations that adapt to different environments and requirements while supporting custom functions for advanced use cases.<\/p>\n<p><strong>Consistency<\/strong>: Maintain standardized build configurations across teams and environments through version-controlled files and inheritance patterns, eliminating environment-specific build issues and reducing configuration drift.<\/p>\n<p><strong>Performance<\/strong>: Automatically parallelize independent builds and eliminate redundant operations through context deduplication and intelligent caching, dramatically reducing build times for complex multi-image workflows.<\/p>\n<p class=\"has-text-align-center\"><strong>Figure 1<\/strong>: One simple Docker buildx bake command to replace all the flags and environment variables.<\/p>\n<h3 class=\"wp-block-heading\">Use cases for Docker Bake<\/h3>\n<h4 class=\"wp-block-heading\">1. Monorepo and Image Bakery<\/h4>\n<p>Docker Bake can help developers efficiently manage and build multiple related Docker images from a single source repository. Plus, they can leverage shared configurations and automated dependency handling to enforce organizational standards.<\/p>\n<p><strong>Development Efficiency:<\/strong> Teams can maintain consistent build logic across dozens or hundreds of microservices in a single repository, reducing configuration drift and maintenance overhead.<\/p>\n<p><strong>Resource Optimization:<\/strong> Shared base images and contexts are automatically deduplicated, dramatically reducing build times and storage costs.<\/p>\n<p><strong>Standardization:<\/strong> Enforce organizational standards through inherited configurations, ensuring all services follow security, tagging, and testing requirements.<\/p>\n<p><strong>Change Management:<\/strong> A single source of truth for build configurations makes it easier to implement organization-wide changes like base image updates or security patches.<\/p>\n<h4 class=\"wp-block-heading\">2. Compose users<\/h4>\n<p>Docker Bake provides seamless compatibility with existing docker-compose.yml files, allowing direct use of your current configurations. Existing Compose users are able to get started using Bake with minimal effort.<\/p>\n<p><strong>Gradual Adoption:<\/strong> Teams can incrementally adopt advanced build features while still leveraging their existing compose workflows and knowledge.<\/p>\n<p><strong>Development Consistency:<\/strong> Use the same configuration for both local development (via compose) and production builds (via Bake), eliminating \u201cworks on my machine\u201d issues.<\/p>\n<p><strong>Enhanced Capabilities<\/strong>: Access powerful features like matrix builds and HCL expressions while maintaining compatibility with familiar compose syntax.<\/p>\n<p><strong>CI\/CD Integration<\/strong>: Seamlessly integrate with existing CI\/CD pipelines that already understand compose files while adding Bake\u2019s advanced build capabilities.<\/p>\n<h4 class=\"wp-block-heading\">3. Complex build configurations<\/h4>\n<p>Developers can use <a href=\"https:\/\/docs.docker.com\/build\/bake\/targets\/\" target=\"_blank\">targets<\/a>, <a href=\"https:\/\/docs.docker.com\/build\/bake\/targets\/#grouping-targets\" target=\"_blank\">groups<\/a>, <a href=\"https:\/\/docs.docker.com\/build\/bake\/variables\/\" target=\"_blank\">variables<\/a>, <a href=\"https:\/\/docs.docker.com\/build\/bake\/funcs\/\" target=\"_blank\">functions<\/a>, and <a href=\"https:\/\/docs.docker.com\/build\/bake\/matrices\/\" target=\"_blank\">matrix targets<\/a> and many more tools in Bake to simplify their build configurations across projects and teams.<\/p>\n<p><strong>Cross-Platform Compatibility:<\/strong> Matrix builds enable teams to efficiently manage builds across multiple architectures, OS versions, and dependency combinations from a single configuration.<\/p>\n<p><strong>Dynamic Adaptation:<\/strong> HCL expressions allow builds to adapt to different environments, git branches, or CI variables without maintaining multiple configurations.<\/p>\n<p><strong>Build Optimization:<\/strong> Custom functions enable sophisticated logic for things like version calculation, tag generation, and conditional builds based on git history.<\/p>\n<p><strong>Quality Control:<\/strong> Variable validation and inheritance ensure consistent configuration across complex build scenarios, reducing errors and maintenance burden.<\/p>\n<p><strong>Scale Management:<\/strong> Groups and targets help organize large-scale build systems with dozens or hundreds of permutations, making them manageable and maintainable.<\/p>\n<h4 class=\"wp-block-heading\">4. Docker Build Cloud<\/h4>\n<p>With Bake-optimized builds as the foundation, developers can achieve more efficient Docker Build Cloud performance and faster builds.<\/p>\n<p><strong>Enhanced Docker Build Cloud Performance:<\/strong> Instantly parallelize matrix builds across cloud infrastructure, turning hour-long build pipelines into minutes without managing build infrastructure.<\/p>\n<p><strong>Resource Optimization:<\/strong> Leverage Build Cloud\u2019s distributed caching and deduplication to dramatically reduce bandwidth usage and build times, which is especially valuable for remote teams.<\/p>\n<p><strong>Cost Management:<\/strong> Save cost with DBC <strong>\u2014<\/strong> Bake\u2019s precise target definitions mean you only consume cloud resources for exactly what needs to be built.<\/p>\n<p><strong>Developer Experience:<\/strong> Teams can run complex multi-architecture builds without powerful local machines, enabling development from any device while maintaining build performance.<\/p>\n<p><strong>CI\/CD Enhancement:<\/strong> Offload resource-intensive builds from CI runners to Build Cloud, reducing CI costs and queue times while improving reliability.<\/p>\n<h2 class=\"wp-block-heading\">What\u2019s New in Bake for GA?<\/h2>\n<p>Docker Bake has been an experimental feature for several years, allowing us to refine and improve it based on user feedback. So, there is already a strong set of ingredients that users love, such as <a href=\"https:\/\/docs.docker.com\/build\/bake\/targets\/\" target=\"_blank\">targets<\/a> and <a href=\"https:\/\/docs.docker.com\/build\/bake\/targets\/#grouping-targets\" target=\"_blank\">groups<\/a>, <a href=\"https:\/\/docs.docker.com\/build\/bake\/variables\/\" target=\"_blank\">variables<\/a>, <a href=\"https:\/\/docs.docker.com\/build\/bake\/funcs\/\" target=\"_blank\">HCL Expression Support<\/a>, <a href=\"https:\/\/docs.docker.com\/build\/bake\/inheritance\/\" target=\"_blank\">inheritance<\/a> capabilities, <a href=\"https:\/\/docs.docker.com\/build\/bake\/matrices\/\" target=\"_blank\">matrix targets<\/a>, and additional <a href=\"https:\/\/docs.docker.com\/build\/bake\/contexts\/\" target=\"_blank\">contex<\/a>ts. With this GA release, Bake is now ready for production use, and we\u2019ve added several enhancements to make it more efficient, secure, and easier to use:<\/p>\n<p><a href=\"https:\/\/docs.docker.com\/build\/bake\/contexts\/#deduplicate-context-transfer\" target=\"_blank\"><strong>Deduplicated Context Transfers<\/strong><\/a><strong>:<\/strong> Significantly speeds up build pipelines by eliminating redundant file transfers when multiple targets share the same build context.<\/p>\n<p><a href=\"https:\/\/docs.docker.com\/reference\/cli\/docker\/buildx\/bake\/#allow\" target=\"_blank\"><strong>Entitlements<\/strong><\/a><strong>:<\/strong> Enhances security and resource management by providing fine-grained control over what capabilities and resources builders can access during the build process.<\/p>\n<p><a href=\"https:\/\/docs.docker.com\/build\/bake\/inheritance\/\" target=\"_blank\"><strong>Composable Attributes<\/strong><\/a><strong>:<\/strong> Simplifies configuration management by allowing teams to define reusable attribute sets that can be mixed, matched, and overridden across different targets.<\/p>\n<p><a href=\"https:\/\/docs.docker.com\/build\/bake\/variables\/#validating-variables\" target=\"_blank\"><strong>Variable Validation<\/strong><\/a><strong>:<\/strong> Prevents wasted time and resources by catching configuration errors before the actual build process begins.<\/p>\n<h3 class=\"wp-block-heading\">Deduplicate context transfers<\/h3>\n<p>When you build targets concurrently using groups, build contexts are loaded independently for each target. If the same context is used by multiple targets in a group, that context is transferred once for each time it\u2019s used. This can significantly impact build time, depending on your build configuration.<\/p>\n<p>Previously, the workaround required users to define a named context that loads the context files and then have each target reference the named context. But with Bake, this will be handled automatically now.<\/p>\n<p>Bake can automatically deduplicate context transfers from targets sharing the same context. When you build targets concurrently using groups, build contexts are loaded independently for each target. If the same context is used by multiple targets in a group, that context is transferred once for each time it\u2019s used. This more efficient approach leads to much faster build time.\u00a0<\/p>\n<p>Read more about how to speed up your build time in our <a href=\"https:\/\/docs.docker.com\/build\/bake\/contexts\/#deduplicate-context-transfer\" target=\"_blank\">docs<\/a>.\u00a0<\/p>\n<h3 class=\"wp-block-heading\">Entitlements<\/h3>\n<p>Bake now includes entitlements to control access to privileged operations, aligning with Build. This prevents unintended side effects and security risks. If Bake detects a potential issue \u2014 like a privileged access request or an attempt to access files outside the current directory \u2014 the build will fail unless explicitly allowed.<\/p>\n<p>To be consistent, the Bake command now supports the &#8211;allow=ENTITLEMENT flag to grant access to additional entitlements. The following entitlements are <a href=\"https:\/\/docs.docker.com\/reference\/cli\/docker\/buildx\/bake\/#allow\" target=\"_blank\">currently supported for Bake<\/a>.<\/p>\n<p>Build equivalents<\/p>\n<p>&#8211;allow network.host <strong>\u2014<\/strong> Allows executions with host networking.<\/p>\n<p>&#8211;allow security.insecure <strong>\u2014<\/strong> Allows executions without sandbox. (i.e. \u2014privileged)<\/p>\n<p>File system: Grant filesystem access for builds that need access files outside the working directory. This will impact context, output, cache-from, cache-to, dockerfile, secret<\/p>\n<p>&#8211;allow fs=&lt;path|*&gt; <strong>\u2014<\/strong> Grant read and write access to files outside the working directory.<\/p>\n<p>&#8211;allow fs.read=&lt;path|*&gt; <strong>\u2014<\/strong> Grant read access to files outside the working directory.<\/p>\n<p>&#8211;allow fs.write=&lt;path|*&gt; <strong>\u2014<\/strong> Grant write access to files outside the working directory.<\/p>\n<p>ssh<\/p>\n<p>&#8211;allow ssh <strong>\u2014<\/strong>\u2013 Allows exposing SSH agent.<\/p>\n<h3 class=\"wp-block-heading\">Composable attributes<\/h3>\n<p>Several attributes previously had to be defined in CSV (e.g. type=provenance,mode=min). These were challenging to read and couldn\u2019t be easily overridden. The following can now be defined as structured objects:<\/p>\n<p>target &#8220;app&#8221; {<br \/>\n\t\tattest = [<br \/>\n\t\t\t{ type = &#8220;provenance&#8221;, mode = &#8220;max&#8221; },<br \/>\n\t\t\t{ type = &#8220;sbom&#8221;, disabled = true}<br \/>\n\t\t]<\/p>\n<p>\t\tcache-from = [<br \/>\n\t\t\t{ type = &#8220;registry&#8221;, ref = &#8220;user\/app:cache&#8221; },<br \/>\n\t\t\t{ type = &#8220;local&#8221;, src = &#8220;path\/to\/cache&#8221;}<br \/>\n\t\t]<\/p>\n<p>\t\tcache-to = [<br \/>\n\t\t\t{ type = &#8220;local&#8221;, dest = &#8220;path\/to\/cache&#8221; },<br \/>\n\t\t]<\/p>\n<p>\t\toutput = [<br \/>\n\t\t\t{ type = &#8220;oci&#8221;, dest = &#8220;..\/out.tar&#8221; },<br \/>\n\t\t\t{ type = &#8220;local&#8221;, dest=&#8221;..\/out&#8221;}<br \/>\n\t\t]<\/p>\n<p>\t\tsecret = [<br \/>\n\t\t\t{ id = &#8220;mysecret&#8221;, src = &#8220;path\/to\/secret&#8221; },<br \/>\n\t\t\t{ id = &#8220;mysecret2&#8221;, env = &#8220;TOKEN&#8221; },<br \/>\n\t\t]<\/p>\n<p>\t\tssh = [<br \/>\n\t\t\t{ id = &#8220;default&#8221; },<br \/>\n\t\t\t{ id = &#8220;key&#8221;, paths = [&#8220;path\/to\/key&#8221;] },<br \/>\n\t\t]<br \/>\n}<\/p>\n<p>As such, the attributes are now composable. Teams can mix, match, and override attributes across different targets which simplifies configuration management.<\/p>\n<p> target &#8220;app-dev&#8221; {<br \/>\n    attest = [<br \/>\n\t\t\t{ type = &#8220;provenance&#8221;, mode = &#8220;min&#8221; },<br \/>\n\t\t\t{ type = &#8220;sbom&#8221;, disabled = true}<br \/>\n\t\t]<br \/>\n  }<\/p>\n<p>  target &#8220;app-prod&#8221; {<br \/>\n    inherits = [&#8220;app-dev&#8221;]<\/p>\n<p>    attest = [<br \/>\n\t\t\t{ type = &#8220;provenance&#8221;, mode = &#8220;max&#8221; },<br \/>\n\t\t]<br \/>\n  }<\/p>\n<h3 class=\"wp-block-heading\">Variable validation<\/h3>\n<p>Bake now supports validation for variables similar to<a href=\"https:\/\/developer.hashicorp.com\/terraform\/language\/values\/variables#custom-validation-rules\" target=\"_blank\"> Terraform<\/a> to help developers catch and resolve configuration errors early. The GA for Bake also supports the following use cases.<\/p>\n<p><strong>Basic validation<\/strong><\/p>\n<p>To verify that the value of a variable conforms to an expected type, value range, or other condition, you can define custom validation rules using the validation block.<\/p>\n<p>variable &#8220;FOO&#8221; {<br \/>\n  validation {<br \/>\n    condition = FOO != &#8220;&#8221;<br \/>\n    error_message = &#8220;FOO is required.&#8221;<br \/>\n  }<br \/>\n}<\/p>\n<p>target &#8220;default&#8221; {<br \/>\n  args = {<br \/>\n    FOO = FOO<br \/>\n  }<br \/>\n}<\/p>\n<p><strong>Multiple validations<\/strong><\/p>\n<p>To evaluate more than one condition, define multiple validation blocks for the variable. All conditions must be true.<\/p>\n<p>variable &#8220;FOO&#8221; {<br \/>\n  validation {<br \/>\n    condition = FOO != &#8220;&#8221;<br \/>\n    error_message = &#8220;FOO is required.&#8221;<br \/>\n  }<br \/>\n  validation {<br \/>\n    condition = strlen(FOO) &gt; 4<br \/>\n    error_message = &#8220;FOO must be longer than 4 characters.&#8221;<br \/>\n  }<br \/>\n}<\/p>\n<p>target &#8220;default&#8221; {<br \/>\n  args = {<br \/>\n    FOO = FOO<br \/>\n  }<br \/>\n}<\/p>\n<p><strong>Dependency on other variables<\/strong><\/p>\n<p>You can reference other <a href=\"https:\/\/docs.docker.com\/build\/bake\/variables\/#validating-variables\" target=\"_blank\">Bake variables<\/a> in your condition expression, enabling validations that enforce dependencies between variables. This ensures that dependent variables are set correctly before proceeding.<\/p>\n<p>variable &#8220;FOO&#8221; {}<br \/>\nvariable &#8220;BAR&#8221; {<br \/>\n  validation {<br \/>\n    condition = FOO != &#8220;&#8221;<br \/>\n    error_message = &#8220;BAR requires FOO to be set.&#8221;<br \/>\n  }<br \/>\n}<\/p>\n<p>target &#8220;default&#8221; {<br \/>\n  args = {<br \/>\n    BAR = BAR<br \/>\n  }<br \/>\n}<\/p>\n<h3 class=\"wp-block-heading\">New Bake options<\/h3>\n<p>In addition to updating the Bake configuration, we\u2019ve added a new \u2013list option. Previously, if you were unfamiliar with a project or wanted a reminder of the supported targets and variables, you would have to read through the file. Now, the list option will allow you to quickly query a list of them. It also supports the JSON format option if you need programmatic access.<\/p>\n<p><strong>List target<\/strong><\/p>\n<p>Quickly get a list of the targets available in your Bake configuration.<\/p>\n<p>docker buildx bake &#8211;list targets<\/p>\n<p>docker buildx bake &#8211;list type=targets,format=json<\/p>\n<p><strong>List variables<\/strong><\/p>\n<p>Get a list of variables available for your Bake configuration.<\/p>\n<p>docker buildx bake &#8211;list variables<\/p>\n<p>docker buildx bake &#8211;list type=variables,format=json<\/p>\n<p>These improvements build on a powerful feature set, ensuring Bake is both reliable and future-ready.<\/p>\n<h2 class=\"wp-block-heading\">Get started with Docker Bake<\/h2>\n<p>Ready to simplify your builds? Update to Docker Desktop 4.38 today and start using Bake. With its declarative syntax and advanced features, Docker Bake is here to help you build faster, more efficiently, and with less effort.<\/p>\n<p>Explore the <a href=\"https:\/\/docs.docker.com\/build\/bake\/\" target=\"_blank\">documentation<\/a> to learn how to create your first Bake file and experience the benefits of streamlined builds firsthand.<\/p>\n<p>Let\u2019s bake something amazing together!<\/p>","protected":false},"excerpt":{"rendered":"<p>We\u2019re excited to announce the General Availability of Docker Bake with Docker Desktop 4.38! This powerful build orchestration tool takes [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[4],"tags":[],"class_list":["post-1699","post","type-post","status-publish","format-standard","hentry","category-docker"],"_links":{"self":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/1699","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/comments?post=1699"}],"version-history":[{"count":0,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/1699\/revisions"}],"wp:attachment":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/media?parent=1699"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/categories?post=1699"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/tags?post=1699"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}