{"id":45887671,"url":"https://github.com/irfanhakim-as/img-builder","last_synced_at":"2026-02-27T16:46:26.612Z","repository":{"id":337361388,"uuid":"937096522","full_name":"irfanhakim-as/img-builder","owner":"irfanhakim-as","description":"A lightweight tool for building and publishing container images to an image registry","archived":false,"fork":false,"pushed_at":"2026-02-09T05:22:13.000Z","size":82,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-09T11:25:41.440Z","etag":null,"topics":["container","docker","nerdctl","podman","registry"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/irfanhakim-as.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-22T10:25:40.000Z","updated_at":"2026-02-09T05:21:57.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/irfanhakim-as/img-builder","commit_stats":null,"previous_names":["irfanhakim-as/img-builder"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/irfanhakim-as/img-builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irfanhakim-as%2Fimg-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irfanhakim-as%2Fimg-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irfanhakim-as%2Fimg-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irfanhakim-as%2Fimg-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/irfanhakim-as","download_url":"https://codeload.github.com/irfanhakim-as/img-builder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irfanhakim-as%2Fimg-builder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29905501,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T14:46:13.553Z","status":"ssl_error","status_checked_at":"2026-02-27T14:46:10.522Z","response_time":57,"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":["container","docker","nerdctl","podman","registry"],"created_at":"2026-02-27T16:46:25.901Z","updated_at":"2026-02-27T16:46:26.607Z","avatar_url":"https://github.com/irfanhakim-as.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# img-builder\n\nimg-builder is a lightweight tool for building and publishing container images to an image registry.\n\n## Features\n\n- **Multi-architecture**: Build and publish container images for multiple architectures.\n- **Containerised**: [Container image](https://github.com/irfanhakim-as/img-builder/pkgs/container/img-builder) is provided for a simple, reproducible setup.\n- **Intuitive**: Super easy to use, while being very configurable.\n- **Cross-platform**: Works on Linux, macOS, and Windows (using [WSL](https://learn.microsoft.com/en-us/windows/wsl/install) or the supplied container).\n- **Compatibility**: Compatible with various container runtimes and container registries.\n\n## Prerequisites\n\nThe following binaries or packages are required to be present on your system to install or use img-builder:\n\n- `bash`\n- `podman`, `docker`, or `nerdctl`\n\nIf you are using the provided container image, these should be available by default.\n\nFor multi-architecture build support, the following package(s) need to be installed on the host system:\n\n- Arch Linux: `qemu-user-static` and `qemu-user-static-binfmt`\n- Debian/Ubuntu: `qemu-user-static`\n\n**Alternatively**, run the following container **once** to enable multi-arch support:\n\n\u003e [!NOTE]  \n\u003e Replace `\u003ccontainer-runtime\u003e` with your installed container runtime (i.e. `podman`, `docker`, `nerdctl`).\n\n```sh\n\u003ccontainer-runtime\u003e run --rm --privileged docker.io/multiarch/qemu-user-static --reset -p yes\n```\n\nIf you wish to undo this in the future, run the following command:\n\n```sh\n\u003ccontainer-runtime\u003e run --rm --privileged docker.io/multiarch/qemu-user-static --reset -p no\n```\n\nIf you are facing permission issues, you may need to run the aforementioned commands as `root` using `sudo`.\n\n## Installation\n\nFirst and foremost, ensure that your system has met all of the documented [prerequisites](#prerequisites).\n\n### Container\n\nIf you wish to use img-builder as a container, refer to the [examples](#examples) section to deploy a **rootless, privileged** setup.\n\n### Local\n\nIf you wish to use img-builder locally, follow these steps to install it on your system:\n\n1. Clone the [img-builder](https://github.com/irfanhakim-as/img-builder) repository to your home directory (i.e. `~/.img-builder`):\n\n    ```sh\n    git clone https://github.com/irfanhakim-as/img-builder.git ~/.img-builder\n    ```\n\n    **Alternatively**, download the [latest release](https://github.com/irfanhakim-as/img-builder/releases/latest) and extract it to your home directory (i.e. `~/.img-builder`).\n\n2. Get the breakdown of the installer options, using the `--help` flag:\n\n    ```sh\n    bash ~/.img-builder/installer.sh --help\n    ```\n\n3. Install img-builder using the provided installer. By default, this will install to the `~/.local` prefix:\n\n    ```sh\n    bash ~/.img-builder/installer.sh\n    ```\n\n    You may either change the installation prefix or ensure that it exists and `~/.local/bin` is in your `${PATH}`.\n\n## Examples\n\nBasic rootless, unprivileged setup:\n\n\u003e [!NOTE]  \n\u003e Replace `\u003ccontainer-runtime\u003e` with your installed container runtime (i.e. `podman`, `docker`, `nerdctl`).\n\n```sh\n\u003ccontainer-runtime\u003e run --rm -it ghcr.io/irfanhakim-as/img-builder:latest sh\n```\n\nRootless, privileged setup with, **optionally**, a complete set of [environment variables](#docker-variables):\n\n\u003e [!IMPORTANT]  \n\u003e `--privileged` is required to use some `podman` functionalities, including what is featured in img-builder.\n\n```sh\n\u003ccontainer-runtime\u003e run --rm -it --privileged \\\n-e IMAGE_REGISTRY=\"ghcr.io\" \\\n-e AUTH_USER=\"my-user\" \\\n-e AUTH_TOKEN=\"my-secret-token\" \\\n-e SRC_REPO_URL=\"https://github.com/example/test.git\" \\\nghcr.io/irfanhakim-as/img-builder:latest sh\n```\n\nFor a breakdown of img-builder usage options, use the `--help` flag:\n\n```sh\nimg-builder --help\n```\n\n## Configuration\n\n### Installer Variables\n\n| **Option** | **Description** | **Sample Value** | **Default Value** |\n| --- | --- | --- | --- |\n| `INSTALL_PFX` | The base installation prefix where files will be installed. | `/usr/local` | `${HOME}/.local` |\n\n### Environment Variables\n\n| **Option** | **Description** | **Sample Value** | **Default Value** |\n| --- | --- | --- | --- |\n| `BUILD_ENVFILE` | The path to an environment file defining build config variables. | `.build.env` | - |\n| `CONTAINER_RUNTIME` | The runtime environment used for container-based operations. | `docker` | `podman`, `docker`, or `nerdctl` |\n| `IMAGE_NAME` | The name of the container image. | `my-container` | - |\n| `IMAGE_REGISTRY` | The container registry where the image should be published. | `ghcr.io`, `registry.gitlab.com` | `docker.io` |\n| `IMAGE_REPOSITORY` | The user account or namespace in the registry where the image will be stored. | `my-user`, `my-user/my-container` | - |\n| `IMAGE_TAG` | The tag assigned to the image to indicate its version or build. | `0.1.0-stable-r1` | `latest` |\n| `IMAGE_ARCH` | Comma-separated list of target platforms and architectures for the image build. | `linux/amd64,linux/arm/v7,linux/arm64/v8` | `linux/amd64` |\n| `IMAGE_CONTEXT` | The build context directory containing the Dockerfile and related files. | `./my-container` | `.` |\n| `IMAGE_DOCKERFILE` | The Dockerfile to use for building the image. | `slim-dockerfile` | `Dockerfile` |\n\n### Docker Variables\n\n| **Option** | **Description** | **Sample Value** | **Default Value** |\n| --- | --- | --- | --- |\n| `IMAGE_REGISTRY` | The container registry where the image should be published. | `ghcr.io`, `registry.gitlab.com` | `docker.io` |\n| `AUTH_USER` | The username for authenticating with the image registry. | `my-user` | - |\n| `AUTH_TOKEN` | The authentication token or password for the image registry. | `my-secret-token` | - |\n| `SRC_REPO_URL` | The URL of a repository to clone into the container. | `https://github.com/example/test.git` | - |\n\n## License\n\nThis project is licensed under the [AGPL-3.0-only](https://choosealicense.com/licenses/agpl-3.0) license. Please refer to the [LICENSE](LICENSE) file for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firfanhakim-as%2Fimg-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Firfanhakim-as%2Fimg-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firfanhakim-as%2Fimg-builder/lists"}