{"id":19431898,"url":"https://github.com/cmdjulian/httpd-docker","last_synced_at":"2026-04-25T22:34:11.150Z","repository":{"id":61927186,"uuid":"556010654","full_name":"cmdjulian/httpd-docker","owner":"cmdjulian","description":"minimal multi-arch httpd docker image based on scratch 🐋","archived":false,"fork":false,"pushed_at":"2026-04-01T13:10:44.000Z","size":346,"stargazers_count":1,"open_issues_count":12,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-01T15:22:46.846Z","etag":null,"topics":["busybox","docker","docker-image","httpd","httpd-server","tini"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","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/cmdjulian.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":"2022-10-22T21:28:45.000Z","updated_at":"2023-03-06T13:31:37.000Z","dependencies_parsed_at":"2024-01-28T15:23:47.091Z","dependency_job_id":"fc33d3bd-75f6-4130-923c-521cdbe46a72","html_url":"https://github.com/cmdjulian/httpd-docker","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/cmdjulian/httpd-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmdjulian%2Fhttpd-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmdjulian%2Fhttpd-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmdjulian%2Fhttpd-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmdjulian%2Fhttpd-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cmdjulian","download_url":"https://codeload.github.com/cmdjulian/httpd-docker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmdjulian%2Fhttpd-docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32279657,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"ssl_error","status_checked_at":"2026-04-25T18:29:32.149Z","response_time":59,"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":["busybox","docker","docker-image","httpd","httpd-server","tini"],"created_at":"2024-11-10T14:32:49.375Z","updated_at":"2026-04-25T22:34:11.138Z","avatar_url":"https://github.com/cmdjulian.png","language":"Dockerfile","readme":"[![Docker Pulls](https://badgen.net/docker/pulls/cmdjulian/httpd?icon=docker\u0026label=pulls)](https://hub.docker.com/r/cmdjulian/httpd/)\n[![Docker Stars](https://badgen.net/docker/stars/cmdjulian/httpd?icon=docker\u0026label=stars)](https://hub.docker.com/r/cmdjulian/httpd/)\n[![Docker Image Size](https://badgen.net/docker/size/cmdjulian/httpd?icon=docker\u0026label=image%20size)](https://hub.docker.com/r/cmdjulian/httpd/)\n\n# minimal multi arch `httpd` docker image\n\n![](logo.png)\n\nMinimal `httpd` shell-less multi-arch docker image based on scratch.\n\nThe image is based on scratch and contains a static striped busybox binary just including `httpd` applet.\nThe image is published on docker hub under `cmdjulian/httpd:{version}`. It supports `arm/v6`, `arm/v7`, `arm64`, `i386`, `amd64`, `ppc64le` and `s390x`\narchitectures.\n\nPer default, it runs as a non-root user `httpd(id=65532)`. Alternatively, you can also switch to `root(id=0)`.\n\nThe http process is started by [tini](https://github.com/krallin/tini), a small init wrapper. It takes responsibility in\nforwarding the correct termination signals to the underlying `httpd` process.\n\nThe container does not contain a shell.\n\n## Usage\n\nPer default the config file for `httpd` is empty. It's located under `/etc/httpd/httpd.conf`.  \nPer default the server listens on port `8080`.  \nThe served root folder is `/opt/httpd`.  \nCommandline arguments can be easily overridden via cli: `docker run --rm -p 3000:3000 docu:latest -v -p 3000`.  \nHere we keep verbose output and change the port to 3000. We don't need the config file, so we don't provide the cli\noption either.\n\n### Example\n\nThe following Dockerfile is an example for an angular app.  \nThe first copy instruction moves the compiled angular ap into the content root.  \nThe second one copies a custom config file to redirects every sub-path to the index.html.\n\n```Dockerfile\n# syntax = docker/dockerfile:1.5.2\n\nFROM cmdjulian/httpd:v1.36.0 \n\nCOPY --link ./dist/app/ /opt/httpd\nCOPY --link \u003c\u003cEOF /etc/httpd/httpd.conf\nE404:index.html\nEOF\n```\n\n## Credits\n\nThe image is inspired by Florian Lipans [blog post](https://lipanski.com/posts/smallest-docker-image-static-website)\nHowever, it does not provide multi-arch support and also lacks a proper init wrapper like `tini`.\nLogo is taken from [Mario Pinkster](https://www.sentiatechblog.com/running-apache-in-a-docker-container)\n\n## Development\n\n- To make busybox compile for `arm/v7`, we have to set `CONFIG_LFS=y` in the\n  config [GitHub issue](https://github.com/dyne/ZShaolin/blob/master/build/busybox/README.md)\n- `CONFIG_STATIC=y` has to be set to compile httpd statically. If we don't do that, the error message from `tini` is\n  very misleading. It says something like `/bin/httpd` not found, even if this file exists\n- building a specific version can be archived by providing a build-arg as `BUSYBOX_VERSION=$VERSION`. Keep in mind\n  though, that the config present in [config](./config) is most definitely not compatible and needs adjustments\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmdjulian%2Fhttpd-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcmdjulian%2Fhttpd-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmdjulian%2Fhttpd-docker/lists"}