本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
with-node、100-with-node、100-with-node-16(带Node.js)(Dockerfile)with-puppeteer、100-with-puppeteer(带Puppeteer)(Dockerfile)with-playwright、100-with-playwright(带Playwright)(Dockerfile)with-selenoid、100-with-selenoid(带Selenoid)(Dockerfile)with-chromedriver、100-with-chromedriver(带Chromedriver)(Dockerfile)89、86、85、84、83、81、80、77、76、73、72、71、68、6489-with-node、86-with-node、85-with-node等89-with-puppeteer、86-with-puppeteer等在极小的Alpine镜像中以无头模式运行的Chrome浏览器
在Web开发中,快速运行端到端测试至关重要。Puppeteer等流行技术使开发者能够实现测试、表单自动化、网页爬取、截图生成、时间线捕获等功能。而秘密在于:Chrome原生支持其中部分功能!🙌
仅使用docker container run -it zenika/alpine-chrome ...启动容器会失败,日志类似#33。请使用以下三种方法。
--no-sandbox启动容器命令:
docker container run -it --rm zenika/alpine-chrome,并在所有命令中添加--no-sandbox参数。
注意:确保信任目标网站。
no-sandbox参数的简要说明参见此处,深度设计文档参见此处。
SYS_ADMIN权限启动容器命令:
docker container run -it --rm --cap-add=SYS_ADMIN zenika/alpine-chrome
此方法允许Chrome启用沙箱,但从Docker角度看授予了不必要的权限。
seccomp基于Jessie Frazelle的Chrome安全计算(seccomp)配置文件,这是最安全的运行方式。
配置文件:chrome.json,也可通过wget [***]获取。
启动容器命令:
docker container run -it --rm --security-opt seccomp=$(pwd)/chrome.json zenika/alpine-chrome
默认入口点执行命令:chromium-browser --headless --disable-gpu --disable-software-rasterizer --disable-dev-shm-usage
如需完全控制,可覆盖入口点:docker container run -it --rm --entrypoint "" zenika/alpine-chrome chromium-browser ...
命令(需no-sandbox):docker container run -d -p 9222:9222 zenika/alpine-chrome --no-sandbox --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222 [***]
在浏览器中访问http://localhost:9222,点击要检查的标签页。将链接开头的https://chrome-devtools-frontend.appspot.com/serve_file/@.../inspector.html?ws=localhost:9222/[END]替换为chrome-devtools://devtools/bundled/inspector.html?ws=localhost:9222/[END]。
命令(需no-sandbox):docker container run -it --rm zenika/alpine-chrome --no-sandbox --dump-dom [***]
命令(需no-sandbox):docker container run -it --rm -v $(pwd):/usr/src/app zenika/alpine-chrome --no-sandbox --print-to-pdf --hide-scrollbars [***]
命令(需no-sandbox):docker container run -it --rm -v $(pwd):/usr/src/app zenika/alpine-chrome --no-sandbox --screenshot --hide-scrollbars [***]
命令(需no-sandbox):docker container run -it --rm -v $(pwd):/usr/src/app zenika/alpine-chrome --no-sandbox --screenshot --hide-scrollbars --window-size=1280,1696 [***]
命令(需no-sandbox):docker container run -it --rm -v $(pwd):/usr/src/app zenika/alpine-chrome --no-sandbox --screenshot --hide-scrollbars --window-size=412,732 [***]
命令(需no-sandbox):docker container run -u `id -u $USER` -it --rm -v $(pwd):/usr/src/app zenika/alpine-chrome --no-sandbox --screenshot --hide-scrollbars --window-size=412,732 [***]
进入deno src目录,构建镜像:
docker image build -t zenika/alpine-chrome:with-deno-sample .
启动容器:
docker container run -it --rm zenika/alpine-chrome:with-deno-sample Download [***] Warning Implicitly using master branch [***] Compile [***] Welcome to Deno 🦕
运行自定义文件:
docker container run -it --rm -v $(pwd):/usr/src/app zenika/alpine-chrome:with-deno-sample run helloworld.ts Compile file:///usr/src/app/helloworld.ts Download [***] Warning Implicitly using master branch [***] Hello world!
借助"Puppeteer"工具,可扩展无头Chrome功能。通过NodeJS代码可实现更复杂的测试。
详见"with-puppeteer"目录。需遵循Chromium与Puppeteer版本对应关系。
若src目录中有NodeJS/Puppeteer脚本pdf.js,启动命令:
docker container run -it --rm -v $(pwd)/src:/usr/src/app/src --cap-add=SYS_ADMIN zenika/alpine-chrome:with-puppeteer node src/pdf.js
通过"wqy-zenhei"库支持亚洲语言页面(如"screenshot-asia.js"):
docker container run -it --rm -v $(pwd)/src:/usr/src/app/src --cap-add=SYS_ADMIN zenika/alpine-chrome:with-puppeteer node src/screenshot-asia.js
已测试支持以下语言的网站:
[***])[***])[***])根据Puppeteer官方文档,无头模式不支持测试Chrome扩展,需借助Xvfb提供显示环境。
详见"with-puppeteer-xvfb"目录,需遵循Chromium与Puppeteer版本对应关系。
若src目录中有脚本extension.js,扩展文件在chrome-extension目录,启动命令:
docker container run -it --rm -v $(pwd)/src:/usr/src/app/src --cap-add=SYS_ADMIN zenika/alpine-chrome:with-puppeteer-xvfb node src/extension.js
示例扩展将所有网站背景设为红色,脚本会加载扩展并截取icanhazip.com的截图。
类似"Puppeteer","Playwright"也可扩展无头Chrome功能。
进入with-playwright目录,启动命令:
docker container run -it --rm -v $(pwd)/src:/usr/src/app/src --cap-add=SYS_ADMIN zenika/alpine-chrome:with-playwright node src/useragent.js
with-playwright/src目录将生成example-chromium.png文件。
默认支持WebGL,如需禁用,启动Chromium时添加--disable-gpu。
with-webgl标签已弃用,将于2020年8月底前移除。
示例命令:
docker container run -it --rm --cap-add=SYS_ADMIN -v $(pwd):/usr/src/app zenika/alpine-chrome --screenshot --hide-scrollbars [***]
docker container run -it --rm --cap-add=SYS_ADMIN -v $(pwd):/usr/src/app zenika/alpine-chrome --screenshot --hide-scrollbars [***]
相关链接:
ChromeDriver是Selenium WebDriver控制Chrome的独立可执行文件。本镜像可作为Docker化Selenium测试的基础。详见使用Chromedriver运行Selenium测试指南。
Selenoid是基于Docker的Selenium hub实现,轻量级且功能强大。with-selenoid镜像包含Selenium服务器、Chrome和Chromedriver。
启动命令:
docker container run -it --rm --cap-add=SYS_ADMIN -p 4444:4444 zenika/alpine-chrome:with-selenoid -capture-driver-logs
测试可访问http://localhost:4444/wd/hub。
在GitLab CI等Docker权限受限环境中,可能无法使用--cap-add=SYS_ADMIN,需向chromedriver传递--no-sandbox参数。详见selenoid文档。
命令:
docker container run --rm -it --entrypoint "" --user root zenika/alpine-chrome sh
examples目录提供以下示例:
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429