{"id":13587932,"url":"https://github.com/chromedp/docker-headless-shell","last_synced_at":"2025-04-08T02:34:23.671Z","repository":{"id":38807676,"uuid":"80721104","full_name":"chromedp/docker-headless-shell","owner":"chromedp","description":"Minimal container for Chrome's headless shell, useful for automating / driving the web","archived":false,"fork":false,"pushed_at":"2024-04-27T09:24:17.000Z","size":139,"stargazers_count":433,"open_issues_count":0,"forks_count":63,"subscribers_count":21,"default_branch":"master","last_synced_at":"2024-04-27T10:28:10.090Z","etag":null,"topics":["chrome","chrome-headless","docker"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/chromedp/headless-shell/","language":"Shell","has_issues":false,"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/chromedp.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":"2017-02-02T12:03:30.000Z","updated_at":"2024-06-17T00:29:28.119Z","dependencies_parsed_at":"2024-04-25T23:24:11.894Z","dependency_job_id":"d4ee69b0-6ed8-4170-9baf-1f25ddaa8564","html_url":"https://github.com/chromedp/docker-headless-shell","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chromedp%2Fdocker-headless-shell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chromedp%2Fdocker-headless-shell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chromedp%2Fdocker-headless-shell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chromedp%2Fdocker-headless-shell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chromedp","download_url":"https://codeload.github.com/chromedp/docker-headless-shell/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247765061,"owners_count":20992227,"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","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":["chrome","chrome-headless","docker"],"created_at":"2024-08-01T15:06:25.750Z","updated_at":"2025-04-08T02:34:23.416Z","avatar_url":"https://github.com/chromedp.png","language":"Shell","funding_links":[],"categories":["Shell","Shell (473)"],"sub_categories":[],"readme":"# About headless-shell\n\nThe [headless-shell][headless-shell] project provides a multi-arch container\nimage, [`docker.io/chromedp/headless-shell`][docker-headless-shell], containing\nChrome's `headless-shell` -- a slimmed down version of Chrome that is useful\nfor driving, profiling, or testing web pages.\n\nThis image has been created for the Go [`chromedp` package][chromedp], which\nprovides a simple and easy to use API for driving browsers compatible with the\n[Chrome Debugging Protocol][devtools-protocol], but can be used with library or\napplication that supports the Chrome Debugging Protocol.\n\nThe version of `headless-shell` contained in the [`docker.io/chromedp/headless-shell`][docker-headless-shell]\nhas been modified from the original Chromium source tree, to report the same\nuser agent as Chrome, and has had other minor modifications made to it in order\nto make it better suited for use in an embedded context.\n\n## Tags and Versions\n\nMulti-arch images for Chrome's `stable`, `beta`, and `dev` channels are pushed\ndaily to the [`docker.io/chromedp/headless-shell`][docker-headless-shell]\nrepository.\n\nThe image can be used via the `stable`, `beta`, or `dev` floating tags, or via\na specific version tag:\n\n```sh\n# pull latest stable\n$ podman pull docker.io/chromedp/headless-shell:latest\n\n# pull specific version\n$ podman pull docker.io/chromedp/headless-shell:123.0.6312.86\n\n# pull beta\n$ podman pull docker.io/chromedp/headless-shell:beta\n\n# pull dev\n$ podman pull docker.io/chromedp/headless-shell:dev\n```\n\n## Running\n\nThe `headless-shell` container can be used in the usual way:\n\n```sh\n# run\n$ podman run -d -p 9222:9222 --rm --name headless-shell docker.io/chromedp/headless-shell\n\n# if headless-shell is crashing with a BUS_ADRERR error, pass a larger shm-size:\n$ podman run -d -p 9222:9222 --rm --name headless-shell --shm-size 2G docker.io/chromedp/headless-shell\n\n# run as unprivileged user\n# get seccomp profile from https://raw.githubusercontent.com/jfrazelle/dotfiles/master/etc/docker/seccomp/chrome.json\n$ podman run -d -p 9222:9222 --user nobody --security-opt seccomp=chrome.json --entrypoint '/headless-shell/headless-shell' docker.io/chromedp/headless-shell --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222 --disable-gpu --headless\n```\n\n## Zombie processes\n\nWhen using `docker.io/chromedp/headless-shell` (either directly or as a base\nimage), you could experience zombie processes problem. To reap zombie\nprocesses, use `podman run`'s `--init` arg:\n\n```sh\n$ podman run -d -p \u003cPORT\u003e:\u003cPORT\u003e --name \u003cyour-program\u003e --init \u003cyour-image\u003e\n```\n\nIf running Docker older than 1.13.0, use [`dumb-init`][dumb-init] or\n[`tini`][tini] on your `Dockerfile`'s `ENTRYPOINT`\n\n```Dockerfile\nFROM docker.io/chromedp/headless-shell:latest\n...\n# Install dumb-init or tini\nRUN apt install dumb-init\n# or RUN apt install tini\n...\nENTRYPOINT [\"dumb-init\", \"--\"]\n# or ENTRYPOINT [\"tini\", \"--\"]\nCMD [\"/path/to/your/program\"]\n```\n\n[headless-shell]: https://github.com/chromedp/docker-headless-shell\n[docker-headless-shell]: https://hub.docker.com/r/chromedp/headless-shell/tags\n[devtools-protocol]: https://chromedevtools.github.io/devtools-protocol/\n[chromedp]: https://github.com/chromedp/chromedp\n[building-linux]: https://chromium.googlesource.com/chromium/src/+/main/docs/linux/build_instructions.md\n[building-headless]: https://chromium.googlesource.com/chromium/src/+/main/headless/README.md\n[dumb-init]: https://github.com/Yelp/dumb-init\n[tini]: https://github.com/krallin/tini\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchromedp%2Fdocker-headless-shell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchromedp%2Fdocker-headless-shell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchromedp%2Fdocker-headless-shell/lists"}