
chromedp/headless-shellheadless-shell项目提供了一个Docker镜像chromedp/headless-shell,该镜像包含预构建的Chrome headless-shell——一个精简版Chrome,主要用于驱动、分析或测试网页。
此Docker镜像专为Go语言的chromedp包设计,该包提供了简单易用的API,用于驱动兼容Chrome调试协议的浏览器。
镜像中的headless-shell版本基于Chromium源码树修改而来,已调整为与Chrome相同的用户代理,并进行了其他 minor 修改,以更好地适应嵌入式环境。
chromedp等Chrome调试协议客户端工具集成bash# 拉取最新版本 docker pull chromedp/headless-shell:latest # 拉取特定版本(示例版本号) docker pull chromedp/headless-shell:74.0.3717.1
bashdocker run -d -p 9222:9222 --rm --name headless-shell chromedp/headless-shell
若容器因BUS_ADRERR错误崩溃,需增大共享内存大小:
bashdocker run -d -p 9222:9222 --rm --name headless-shell --shm-size 2G chromedp/headless-shell
-p 9222:9222:映射容器内Chrome调试端口(9222)到主机,供外部工具连接--rm:容器停止后自动清理文件系统--name headless-shell:指定容器名称,便于管理--shm-size:设置共享内存大小,解决内存不足导致的崩溃问题(建议2G及以上)以下为手动构建和打包chromedp/headless-shell Docker镜像的说明。
如需本地手动构建镜像,需先从Chromium源码手动构建headless-shell,因此需准备:
depot_tools工具集请参考以下文档完成Linux环境下的Chromium和headless-shell构建准备:
注意:在继续之前,请确保已完成上述步骤,至少成功手动构建一次
headless-shell,且Chromium源码树为最新状态。
成功从Chromium源码构建headless-shell后,可通过以下脚本完成Docker镜像构建:
bash# 构建headless-shell(指定Chromium源码路径和版本号) ./build-headless-shell.sh /path/to/chromium/src 74.0.3717.1 # 构建Docker镜像(使用$PWD/out/headless-shell-$VER.tar.bz2作为源文件) ./docker-build.sh 74.0.3717.1
yamlversion: '3.8' services: headless-shell: image: chromedp/headless-shell:latest container_name: headless-shell ports: - "9222:9222" shm_size: "2G" # 解决共享内存不足问题 restart: unless-stopped # 可选:异常退出后自动重启

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务