{"id":38020251,"url":"https://github.com/ansemjo/static-toolbox","last_synced_at":"2026-01-16T19:28:23.857Z","repository":{"id":55142328,"uuid":"160728249","full_name":"ansemjo/static-toolbox","owner":"ansemjo","description":"Containerized build scripts to compile various static binaries.","archived":false,"fork":false,"pushed_at":"2024-06-17T20:20:01.000Z","size":148,"stargazers_count":6,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-06-17T22:17:39.741Z","etag":null,"topics":["buildkit","containerized","dockerfiles","fdisk","git","gpg","img","static-build","toolbox"],"latest_commit_sha":null,"homepage":"","language":"Makefile","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/ansemjo.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}},"created_at":"2018-12-06T20:29:19.000Z","updated_at":"2024-06-17T20:20:05.000Z","dependencies_parsed_at":"2024-02-23T05:02:41.406Z","dependency_job_id":null,"html_url":"https://github.com/ansemjo/static-toolbox","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ansemjo/static-toolbox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansemjo%2Fstatic-toolbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansemjo%2Fstatic-toolbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansemjo%2Fstatic-toolbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansemjo%2Fstatic-toolbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ansemjo","download_url":"https://codeload.github.com/ansemjo/static-toolbox/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansemjo%2Fstatic-toolbox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28481726,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: 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":["buildkit","containerized","dockerfiles","fdisk","git","gpg","img","static-build","toolbox"],"created_at":"2026-01-16T19:28:23.735Z","updated_at":"2026-01-16T19:28:23.845Z","avatar_url":"https://github.com/ansemjo.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# STATIC TOOLBOX\n\n[![compile release](https://github.com/ansemjo/static-toolbox/actions/workflows/compile.yml/badge.svg)](https://github.com/ansemjo/static-toolbox/actions/workflows/compile.yml)\n\nDockerfile based build scripts to compile various static binaries of useful tools.\n\nI often found myself in shells where I needed a newer version of a particular tool, which was not available through the package manager .. or the system even lacked a package manager to begin with. In that case it can be helpful to have portable binaries that you can just copy to the target without worrying about library dependencies and be able to use it right away.\n\nThe scripts placed in `build/` are Dockerfiles that must be built with the `builtkit` frontend. However, the end result is not a container image but a built binary that is saved in the `compiled/` directory, which you can then copy where-ever you like. The fact that everything is built inside a container means that you do not need to provide any specific build environment – besides an installation of Docker.\n\nUsing the `buildx` plugin you can even compile binaries for another platform by starting a multi-platform capable builder instance and adding a `--platform` argument.\n\n## DOWNLOAD\n\nThe binaries are compiled in a GitHub workflow regularly. These precompiled binaries and all the downloaded sources that were used can be found in the [action artifacts](https://github.com/ansemjo/static-toolbox/actions/workflows/compile.yml): click on a run and download the corresponding archive form the build artifacts.\n\n## REQUIREMENTS\n\n* Docker with `buildkit` support / `buildx` plugin, i.e. at least 19.03\n* `make`, `find`, `sed`\n\n## USAGE\n\nAvailable build targets are given by the Dockerfiles in [`build/`](build/):\n\n* `make busybox`\n* `make curl`\n* `make fdisk` (includes `blkid`, `losetup`, `(u)mount`, `nsenter` \u0026 `unshare`)\n* `make git`\n* `make gpg`\n* `make make`\n* `make openssl`\n* `make rsync`\n* `make vim`\n* `make zstd`\n\nThe output will be placed in `compiled/` in a subdirectory matching your native platform.\n\nSome of the scripts use GPG signatures for which the trusted signing keys are stored in `build/*.keys` files and are imported before checking the downloaded sources.\n\n### OTHER PLATFORMS\n\nFirst, [setup `buildx` for multi-platform building](https://docs.docker.com/build/buildx/multiplatform-images/). Let's assume you already ran `docker buildx create --use ...` etc. and your currently used build server is multi-platform capable. Then you should be able to use the `--platform` argument with `docker build` invocations, too.\n\nThe Makefile contains targets for most available platforms. In order to build `fdisk` for `linux/arm64` you'd use the `compiled/linux-arm64/fdisk/` target:\n\n```bash\nmake compiled/linux-arm64/fdisk/\n```\n\nI haven't actually tested all combinations yet, because it takes a *very long time* under emulation. Available target platforms are:\n\n* `linux-amd64`\n* `linux-arm64`\n* `linux-armv7`\n* `linux-armv6`\n* `linux-riscv64`\n* `linux-s390x`\n* `linux-386`\n\n### MANUAL BUILDS\n\nIf you want to add some other arguments to `docker build` or want to create your own script, this is the command the gets executed in the example above:\n\n```bash\nDOCKER_BUILDKIT=1 docker build -f build/fdisk build/\n  --target binary -o type=local,dest=compiled/linux-arm64/fdisk/ \\\n  --platform linux/arm64\n```\n\n## ADD YOUR OWN\n\nAdd your own build scripts in `build/`:\n\n- add a Dockerfile named like the binary you want to compile\n- use seperate `RUN` commands for better caching of steps\n- the `build/` directory will be the context, so you may add scripts and `COPY` them\n- use a final `FROM scratch AS binary` stage and only copy the output binary into this rootfs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fansemjo%2Fstatic-toolbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fansemjo%2Fstatic-toolbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fansemjo%2Fstatic-toolbox/lists"}