All Projects → chromedp → Docker Headless Shell

chromedp / Docker Headless Shell

Minimal container for Chrome's headless shell, useful for automating / driving the web

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Docker Headless Shell

Alpine Chrome
Chrome Headless docker images built upon alpine official image
Stars: ✭ 754 (+177.21%)
Mutual labels:  chrome, chrome-headless
Gowitness
🔍 gowitness - a golang, web screenshot utility using Chrome Headless
Stars: ✭ 996 (+266.18%)
Mutual labels:  chrome, chrome-headless
Sms Boom
利用chrome的headless模式,模拟用户注册进行短信轰炸机
Stars: ✭ 507 (+86.4%)
Mutual labels:  chrome, chrome-headless
Viewfinderjs
📷 ViewFinder - NodeJS product to make the browser into a web app. WTF RBI. CBII. Remote browser isolation, embeddable browserview, secure chrome saas. Licenses, managed, self-hosted. Like S2, WebGap, Bromium, Authentic8, Menlo Security and Broadcom, but open source with free live demos available now! Also, integrated RBI/CDR with CDR from https://github.com/dosyago/p2%2e
Stars: ✭ 1,175 (+331.99%)
Mutual labels:  chrome, chrome-headless
Api
API that uncovers the technologies used on websites and generates thumbnail from screenshot of website
Stars: ✭ 189 (-30.51%)
Mutual labels:  chrome, chrome-headless
Simple Headless Chrome
Simple abstraction to use Chrome as a Headless Browser with Node JS
Stars: ✭ 216 (-20.59%)
Mutual labels:  chrome, chrome-headless
Puppeteer Sharp Extra
Plugin framework for PuppeteerSharp
Stars: ✭ 39 (-85.66%)
Mutual labels:  chrome, chrome-headless
Lancia
网页转PDF渲染服务。提供收据、发票、报告或任何网页内容转PDF的微服务
Stars: ✭ 108 (-60.29%)
Mutual labels:  chrome, chrome-headless
Squidwarc
Squidwarc is a high fidelity, user scriptable, archival crawler that uses Chrome or Chromium with or without a head
Stars: ✭ 125 (-54.04%)
Mutual labels:  chrome, chrome-headless
Jvppeteer
Headless Chrome For Java (Java 爬虫)
Stars: ✭ 193 (-29.04%)
Mutual labels:  chrome, chrome-headless
Cdp4j
cdp4j - Chrome DevTools Protocol for Java
Stars: ✭ 232 (-14.71%)
Mutual labels:  chrome, chrome-headless
Diskernet
💾 Diskernet - An internet on yer disk. Full text search archive from your browsing and bookmarks. Weclome! to the Diskernet: Your preferred backup solution. It's like you're still online! Disconnect with Diskernet, an internet for the post-online apocalypse. Or the airplane WiFi. Or the site goes down. Or ... You get the picture. Get Diskernet.…
Stars: ✭ 2,788 (+925%)
Mutual labels:  chrome-headless
bookjs-eazy
web print / html to pdf so eazy ,HTML自动分页插件。用于生成PDF,前端WEB打印生成PDF或后端wkhtmltopdf、chrome headless生成
Stars: ✭ 99 (-63.6%)
Mutual labels:  chrome-headless
doffy
a web auto run lib base on chrome headless
Stars: ✭ 13 (-95.22%)
Mutual labels:  chrome-headless
puppeteer-loadtest
load test puppeteer (Headless Chrome API) script using node
Stars: ✭ 107 (-60.66%)
Mutual labels:  chrome-headless
Epiboard
Web Extension — A new tab page extension with material design and useful features 🆕 🎉
Stars: ✭ 262 (-3.68%)
Mutual labels:  chrome
chromate
Automate Headless Chrome.
Stars: ✭ 36 (-86.76%)
Mutual labels:  chrome-headless
ember-app-shell
No description or website provided.
Stars: ✭ 23 (-91.54%)
Mutual labels:  chrome-headless
Viewfinder
📷 BrowserBox - Remote isolated browser API for security, automation visibility and interactivity. Run on our cloud, or bring your own. Full scope double reverse web proxy with multi-tab, mobile-ready browser UI frontend. Plus co-browsing, advanced adaptive streaming, secure document viewing and more! But only in the Pro version. Get BB today! Se…
Stars: ✭ 1,741 (+540.07%)
Mutual labels:  chrome-headless
doo-chrome-devprotocol
A runner for doo which runs tests in Chrome, using the Chrome Dev Protocol with no need for karma or npm.
Stars: ✭ 27 (-90.07%)
Mutual labels:  chrome-headless

About headless-shell

The headless-shell project provides a Docker image, chromedp/headless-shell, containing a pre-built version of Chrome's headless-shell -- a slimmed down version of Chrome that is useful for driving, profiling, or testing web pages.

Notably, this Docker image has been created expressly for the Go chromedp package, which provides a simple and easy to use API for driving browsers compatible with the Chrome Debugging Protocol.

The version of headless-shell contained in this Docker image has been modified from the original Chromium source tree, to report the same user agent as Chrome, and has had other minor modifications made to it in order make it better suited for use in an embedded context.

Running

You can use this Docker image in the usual way:

# pull latest version of headless-shell
$ docker pull chromedp/headless-shell:latest

# pull specific tagged version of headless-shell
$ docker pull chromedp/headless-shell:74.0.3717.1

# run
$ docker run -d -p 9222:9222 --rm --name headless-shell chromedp/headless-shell

# if headless-shell is crashing with a BUS_ADRERR error, pass a larger shm-size:
$ docker run -d -p 9222:9222 --rm --name headless-shell --shm-size 2G chromedp/headless-shell

# run as unprivileged user
# get seccomp profile from https://raw.githubusercontent.com/jfrazelle/dotfiles/master/etc/docker/seccomp/chrome.json
$ docker run -d -p 9222:9222 --user nobody --security-opt seccomp=chrome.json --entrypoint '/headless-shell/headless-shell' chromedp/headless-shell --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222 --disable-gpu --headless

Using as a base image

When using chromedp/headless-shell as a base image to build an image that runs your own program, You could experience zombie process problem. To reap zombie processeses, use dumb-init or tini on your Dockerfile's ENTRYPOINT

FROM chromedp/headless-shell:latest
...
# Install dumb-init or tini
RUN apt install dumb-init
# or RUN apt install tini
...
ENTRYPOINT ["dumb-init", "--"]
# or ENTRYPOINT ["tini", "--"]
CMD ["/path/to/your/program"]

If running Docker 1.13.0 or later, use docker run's --init arg instead to reap zombie processes.

docker run -d -p <PORT>:<PORT> --name <your-program> --init <your-image>

Building and Packaging

The following contains instructions for building and packaging the chromedp/headless-shell Docker image manually.

Setup and Building

If you'd like to build this image yourself, locally, you will need to build headless-shell manually from the Chromium source. As such you will need to setup Chromium's depot_tools, your build environment, and a full checkout of the Chromium source tree and its related dependencies.

Please see the following for instructions on building Chromium and headless-shell on Linux:

Before proceeding, please ensure you have fully completed the above, have manually built headless-shell at least once, and that your Chromium source tree is up-to-date.

Building

After you are able to successfully build headless-shell directly from the Chromium source tree, you can simply run build-docker.sh:

# build headless-shell
$ ./build-headless-shell.sh /path/to/chromium/src 74.0.3717.1

# build docker image (uses $PWD/out/headless-shell-$VER.tar.bz2)
$ ./build-docker.sh 74.0.3717.1
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].