{"id":20438143,"url":"https://github.com/yantis/docker-archlinux-tiny","last_synced_at":"2025-10-08T20:26:05.648Z","repository":{"id":30086654,"uuid":"33636285","full_name":"yantis/docker-archlinux-tiny","owner":"yantis","description":"Ultra Small \u003c 100 MB Arch Linux (as well as ArchAssault, BlackArch, BBQLinux and more) base container. ","archived":false,"fork":false,"pushed_at":"2019-10-02T10:51:58.000Z","size":30,"stargazers_count":12,"open_issues_count":1,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-08T20:26:03.972Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yantis.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}},"created_at":"2015-04-08T22:48:27.000Z","updated_at":"2025-01-04T02:28:34.000Z","dependencies_parsed_at":"2022-08-28T18:24:36.208Z","dependency_job_id":null,"html_url":"https://github.com/yantis/docker-archlinux-tiny","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yantis/docker-archlinux-tiny","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yantis%2Fdocker-archlinux-tiny","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yantis%2Fdocker-archlinux-tiny/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yantis%2Fdocker-archlinux-tiny/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yantis%2Fdocker-archlinux-tiny/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yantis","download_url":"https://codeload.github.com/yantis/docker-archlinux-tiny/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yantis%2Fdocker-archlinux-tiny/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000654,"owners_count":26082817,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-11-15T09:09:28.790Z","updated_at":"2025-10-08T20:26:05.614Z","avatar_url":"https://github.com/yantis.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# archlinux-tiny\n\nOn Docker hub [archlinux-tiny](https://registry.hub.docker.com/u/yantis/archlinux-tiny/)\non Github [docker-archlinux-tiny](https://github.com/yantis/docker-archlinux-tiny)\n\n119 MB Arch Linux base container. The goal of this was to build an extremely small Arch Linux base without giving up any functionality.\nI used Les Aker's [dock0/arch](https://github.com/dock0/arch) as a foundation.\nI also added some amazing repos like [BlackArch](http://blackarch.org) and [BBQLinux](http://bbqlinux.org).\n\nThe goal was to maintain complete functionality so I did not swap out coreutils for busybox.\nBut you could swap out a few things for the busybox version of them and reduce the size down another 20 MB or so.\n\n\n## Docker Images Structure\n\n\u003e[yantis/archlinux-tiny](https://github.com/yantis/docker-archlinux-tiny)\n\u003e\u003e[yantis/archlinux-small](https://github.com/yantis/docker-archlinux-small)\n\u003e\u003e\u003e[yantis/archlinux-small-ssh-hpn](https://github.com/yantis/docker-archlinux-ssh-hpn)\n\u003e\u003e\u003e\u003e[yantis/ssh-hpn-x](https://github.com/yantis/docker-ssh-hpn-x)\n\u003e\u003e\u003e\u003e\u003e[yantis/dynamic-video](https://github.com/yantis/docker-dynamic-video)\n\u003e\u003e\u003e\u003e\u003e\u003e[yantis/virtualgl](https://github.com/yantis/docker-virtualgl)\n\u003e\u003e\u003e\u003e\u003e\u003e\u003e[yantis/wine](https://github.com/yantis/docker-wine)\n\n\n## Features \n* Arch Linux 64 bit core, extra, community repos\n* Arch Linux 32 bit multilib repo\n* [BBQLinux](http://bbqlinux.org) repo for Android Developers.\n* [BlackArch](http://blackarch.org) repo for penetration testers and security professionals.\n* [Arch Linux CN](https://github.com/archlinuxcn) repo \n* user:docker password:docker\n* [Reflector] (https://wiki.archlinux.org/index.php/Reflector) mirror optimized for western USA.\n* cower and package-query for interacting with the AUR. \n* compact (removal of a lot of unneeded stuff that pacman will auto re-install if needed)\n\n2/13/2017 Fixed it to make it work again. It is bigger than it used to be as it\nuses the default SSL which has perl installed.\n\n7/2/2016 added but currently not taking advantage of it\n[Amylum] (https://github.com/amylum/repo) Arch packages primarily compiled statically and built against musl\n\nAs an example this is a search for chrome with the above repos installed:\n![](http://yantis-scripts.s3.amazonaws.com/screenshot_20150407-030717.jpg)\n\n## How did you get it so small.\nThe biggest win was the removal of Perl at 40MB. Perl is needed for two things on the base Arch Linux install\nOpenSSL (it shouldn't be honestly since it isn't really used other than for one small thing on Windows)\nSome other distros have already fixed this [issue] (https://github.com/NixOS/nixpkgs/issues/6763) like NixOS \nAlso, see this [thread](https://bbs.archlinux.org/viewtopic.php?id=73200) and [this](https://bugs.archlinux.org/task/14903).\nAnd for [texinfo](http://www.gnu.org/software/texinfo) (8 MB) which we patched out with a fake stub.\n\nAs well as aggressively cleaning of info, doc and man pages as well as stripping out the non English international stuff.\n\n## Caveats\nThis is slimmed down as much as possible while still having full pacman functionality to install any package needed.\nThis is ment to be more of the lowest possible base to build upon. Try out one of my other Arch Linux versions if you want something more.\n\nWhere it might break is all but the English locales have been removed, as well as any terminfo configs that are not xterm based.\nDo not expect any info, documents or manual pages to exist locally either as those have been purged as well.\n\nI am currently experimenting with the removal of zoneinfo and i18n and no problems so far.\n\nAnything you install with pacman should just install fine but if you want to install something from the AUR you are going to need\nto install dev tools first like make, gcc, autoconf etc.\n\n\n## Miscellaneous\n\nTo save on space the pacman databases are purged. You need run pacman -Sy at least once before using pacman.\n\n```bash\nRUN pacman -Sy\n```\n\nMost of the time pacman will install packages and dependencies just fine. Sometimes though it will say \n\"error: command failed to execute correctly \" with a command not found message. That means you need to install a dependency.\n\nFor example the git package uses groupadd and useradd which are both in the shadow package but you may not know that so to find it you can use the pkgfile tool.\nThis will show you which package to install. In this case you would install the shadow package before installing git.\n\n```bash\n$ pacman -S pkgfile \u0026\u0026 pkgfile --update\n$ pkgfile useradd\ncore/shadow\nextra/bash-completion\n```\n\n\nThis image has a user docker with the password docker. You will most likely want to change the password. Just add this line to your Dockerfile.\n\n```bash\nRUN echo -e \"docker\\nyournewpassword\" | passwd docker\n```\n\nThe mirrors are optimized for US West  If you want it for your area just add this to the top of your Dockerfile.\n\n```bash\nRUN pacman -S reflector --noconfirm \u0026\u0026 \\\n    reflector --verbose -l 5 --protocol https --sort rate --save /etc/pacman.d/mirrorlist \u0026\u0026 \\\n    pacman -Rs reflector --noconfirm\n```\n\nIncluded is cower and package-query for interacting with the AUR. You might want another one like\n[yaourt](https://wiki.archlinux.org/index.php/Yaourt). To install that just:\n\n```bash\nRUN pacman -S --noconfirm yaourt\n```\n\nThe different repositories have a lot of really nice packages. To get a list just run package-query like this.\n\n```bash\npackage-query -Sl archassault\n```\n\n![](http://yantis-scripts.s3.amazonaws.com/screenshot_20150407-023220.jpg)\n\n\n## Random Thoughts (Stuff that you could do that wasn't done)\n* Tried converting coreutils to busybox. It just wasn't worth breaking GNU compatibility that pacman needs. \nTry [shingonoide's image](https://github.com/shingonoide/docker_archlinux-busybox) first before going this route to see if this works for you.\n* The /etc/include directory contains 14 MB of header files. Those could get purged downstream if you knew you were never going to compile or update. Though if that was the case you could delete a whole lot more than that.\n* You could remove linux-api-headers and get 3.3MB of space there but you would have to remember to re-install before any builds. \n* One could remove the licenses package and get 1 MB. (ie: zip it up. Upload it and provide a link). I didn't mess with this for obvious reasons.\n* glibc is a monster. You could look into using [musl](http://www.musl-libc.org/faq.html) but in this case you should probably just use [Alpine Linux](http://alpinelinux.org)\n* /var/lib/pacman/local has 2.5MB in it that could be purged and restored with this [script](https://bbs.archlinux.org/viewtopic.php?pid=670876)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyantis%2Fdocker-archlinux-tiny","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyantis%2Fdocker-archlinux-tiny","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyantis%2Fdocker-archlinux-tiny/lists"}