{"id":15962259,"url":"https://github.com/crazy-max/docker-xbake-ext-demo","last_synced_at":"2026-03-01T10:32:29.389Z","repository":{"id":148251258,"uuid":"402036788","full_name":"crazy-max/docker-xbake-ext-demo","owner":"crazy-max","description":null,"archived":false,"fork":false,"pushed_at":"2021-09-01T12:20:58.000Z","size":3,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-18T07:31:41.194Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crazy-max.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"crazy-max","custom":"https://www.paypal.me/crazyws"}},"created_at":"2021-09-01T11:31:29.000Z","updated_at":"2021-09-02T13:15:28.000Z","dependencies_parsed_at":"2023-04-23T12:46:45.778Z","dependency_job_id":null,"html_url":"https://github.com/crazy-max/docker-xbake-ext-demo","commit_stats":{"total_commits":1,"total_committers":1,"mean_commits":1.0,"dds":0.0,"last_synced_commit":"50fade1eca268f2ef2d77050d9f220b6953d52d9"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/crazy-max/docker-xbake-ext-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazy-max%2Fdocker-xbake-ext-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazy-max%2Fdocker-xbake-ext-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazy-max%2Fdocker-xbake-ext-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazy-max%2Fdocker-xbake-ext-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crazy-max","download_url":"https://codeload.github.com/crazy-max/docker-xbake-ext-demo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazy-max%2Fdocker-xbake-ext-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29966824,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T09:33:09.965Z","status":"ssl_error","status_checked_at":"2026-03-01T09:25:48.915Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-07T16:02:23.826Z","updated_at":"2026-03-01T10:32:29.374Z","avatar_url":"https://github.com/crazy-max.png","language":"Dockerfile","funding_links":["https://github.com/sponsors/crazy-max","https://www.paypal.me/crazyws"],"categories":[],"sub_categories":[],"readme":"# `x-bake` extension field with Compose\n\n## Resources\n\n* https://github.com/docker/buildx/pull/721\n* https://github.com/docker/buildx/blob/master/docs/reference/buildx_bake.md#extension-field-with-compose\n\n## Usage\n\nCreate and start the container with compose-cli as usual:\n\n```shell\n$ docker compose up -d --build\n#20 exporting to image\n#20 sha256:e8c613e07b0b7ff33893b694f7759a10d42e180f2b4dc349fb57dc6b71dcab00\n#20 exporting layers done\n#20 writing image sha256:e075e57ce65d9a593efb4fbef05a67d62f72811ef7096a4a83fb14d074f66aa2 done\n#20 naming to docker.io/crazymax/xbake-demo:foo\n#20 naming to docker.io/crazymax/xbake-demo:foo done\n#20 DONE 0.0s\n[+] Running 1/0\n ⠿ Container cloudflared  Running\n```\n\nLet's print the bake definition of the compose file with bake:\n\n```shell\n$ docker buildx bake --print\n{\n  \"group\": {\n    \"default\": [\n      \"cloudflared\"\n    ]\n  },\n  \"target\": {\n    \"cloudflared\": {\n      \"context\": \".\",\n      \"dockerfile\": \"./Dockerfile\",\n      \"args\": {\n        \"CLOUDFLARED_VERSION\": \"2021.8.2\"\n      },\n      \"tags\": [\n        \"crazymax/xbake-demo:foo\",\n        \"crazymax/xbake-demo:bar\"\n      ],\n      \"cache-to\": [\n        \"type=registry,ref=crazymax/xbake-demo:cache\"\n      ],\n      \"platforms\": [\n        \"linux/amd64\",\n        \"linux/arm64\"\n      ]\n    }\n  }\n}\n```\n\n`x-bake` is taken into account, let's build our multi-platform image and push:\n\n```shell\n$ docker buildx bake --push\n#29 [auth] crazymax/xbake-demo:pull,push token for registry-1.docker.io\n#29 DONE 0.0s\n\n#27 exporting to image\n#27 pushing layers 14.4s done\n#27 pushing manifest for docker.io/crazymax/xbake-demo:foo@sha256:dbf53d691559f37e7b13a872b2c24c21b8d4f50c0fb56fe1e3e6ef6d7df6ba82\n#27 pushing manifest for docker.io/crazymax/xbake-demo:foo@sha256:dbf53d691559f37e7b13a872b2c24c21b8d4f50c0fb56fe1e3e6ef6d7df6ba82 0.9s done\n#27 pushing layers 0.6s done\n#27 pushing manifest for docker.io/crazymax/xbake-demo:bar@sha256:dbf53d691559f37e7b13a872b2c24c21b8d4f50c0fb56fe1e3e6ef6d7df6ba82\n#27 pushing manifest for docker.io/crazymax/xbake-demo:bar@sha256:dbf53d691559f37e7b13a872b2c24c21b8d4f50c0fb56fe1e3e6ef6d7df6ba82 0.7s done\n#27 DONE 18.2s\n\n#30 exporting cache\n#30 preparing build cache for export\n#30 preparing build cache for export 0.2s done\n#30 writing layer sha256:1ba3ca939a193631c4d50a75b9880058e3a8bfe6b99d1a246b7b5eee4d4b3b7d\n#30 ...\n\n#31 [auth] crazymax/xbake-demo:pull,push token for registry-1.docker.io\n#31 DONE 0.0s\n\n#30 exporting cache\n#30 writing layer sha256:1ba3ca939a193631c4d50a75b9880058e3a8bfe6b99d1a246b7b5eee4d4b3b7d 1.7s done\n#30 writing layer sha256:52356da8cb69de73ac817266fd6ecc8acb132fe15fefddecc4bce85ff71f7845\n#30 writing layer sha256:52356da8cb69de73ac817266fd6ecc8acb132fe15fefddecc4bce85ff71f7845 0.1s done\n#30 writing layer sha256:552d1f2373af9bfe12033568ebbfb0ccbb0de11279f9a415a29207e264d7f4d9\n#30 writing layer sha256:552d1f2373af9bfe12033568ebbfb0ccbb0de11279f9a415a29207e264d7f4d9 0.2s done\n#30 writing layer sha256:5d65ffdb58fccd87d626d3099a3045acdda96490c3489062ea8417aa6aa259a1\n#30 writing layer sha256:5d65ffdb58fccd87d626d3099a3045acdda96490c3489062ea8417aa6aa259a1 0.1s done\n#30 writing layer sha256:9590ba3cabc3753cce1a1bf8cc95c43742cfdb4843cd57b7023523abde843b39\n#30 writing layer sha256:9590ba3cabc3753cce1a1bf8cc95c43742cfdb4843cd57b7023523abde843b39 0.2s done\n#30 writing layer sha256:a0d0a0d46f8b52473982a3c466318f479767577551a53ffc9074c9fa7035982e\n#30 writing layer sha256:a0d0a0d46f8b52473982a3c466318f479767577551a53ffc9074c9fa7035982e 0.1s done\n#30 writing config sha256:a4e1d820397dd1cc77811d0cdb3d6f256ef50505dedb2529d9c880ff79fb6fac\n#30 writing config sha256:a4e1d820397dd1cc77811d0cdb3d6f256ef50505dedb2529d9c880ff79fb6fac 2.9s done\n#30 writing manifest sha256:6b6d1f93277588cb96761dc38b5670e945887b9fd52ae46d80492fc22b4e576c\n#30 writing manifest sha256:6b6d1f93277588cb96761dc38b5670e945887b9fd52ae46d80492fc22b4e576c 0.6s done\n#30 DONE 6.1s\n```\n\nLet's see if the manifest is ok on the registry:\n\n```shell\n$ docker buildx imagetools inspect crazymax/xbake-demo:foo\nName:      docker.io/crazymax/xbake-demo:foo\nMediaType: application/vnd.docker.distribution.manifest.list.v2+json\nDigest:    sha256:dbf53d691559f37e7b13a872b2c24c21b8d4f50c0fb56fe1e3e6ef6d7df6ba82\n\nManifests:\n  Name:      docker.io/crazymax/xbake-demo:foo@sha256:7e08cd71b3d95fca9b84a8e8fbeadce019afdf25f55f9ffd58845b54f4b70056\n  MediaType: application/vnd.docker.distribution.manifest.v2+json\n  Platform:  linux/amd64\n\n  Name:      docker.io/crazymax/xbake-demo:foo@sha256:ba5f32c9026b82d13acb289363a136a627436e2c688580b13de749cea0ec1868\n  MediaType: application/vnd.docker.distribution.manifest.v2+json\n  Platform:  linux/arm64\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrazy-max%2Fdocker-xbake-ext-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrazy-max%2Fdocker-xbake-ext-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrazy-max%2Fdocker-xbake-ext-demo/lists"}