
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
基于https://www.docker.com/increase-rate-limits的变更,提供以下仓库地址:
gcr.io/zenika-hub/alpine-chromeeu.gcr.io/zenika-hub/alpine-chromeasia.gcr.io/zenika-hub/alpine-chromeus.gcr.io/zenika-hub/alpine-chromeDockerfile链接latest、100 https://github.com/Zenika/alpine-chrome/blob/master/Dockerfilewith-node、100-with-node、100-with-node-16(带Node.js)https://github.com/Zenika/alpine-chrome/blob/master/with-node/Dockerfilewith-puppeteer、100-with-puppeteer(带Puppeteer)https://github.com/Zenika/alpine-chrome/blob/master/with-puppeteer/Dockerfilewith-playwright、100-with-playwright(带Playwright)https://github.com/Zenika/alpine-chrome/blob/master/with-playwright/Dockerfilewith-selenoid、100-with-selenoid(带Selenoid)https://github.com/Zenika/alpine-chrome/blob/master/with-selenoid/Dockerfilewith-chromedriver、100-with-chromedriver(带Chromedriver)https://github.com/Zenika/alpine-chrome/blob/master/with-chromedriver/Dockerfile89、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 ...启动容器会失败,日志类似https://github.com/Zenika/alpine-chrome/issues/33。请使用以下三种方法。
--no-sandbox启动容器命令:
docker container run -it --rm zenika/alpine-chrome,并在所有命令中添加--no-sandbox参数。
注意:确保信任目标网站。
no-sandbox参数的简要说明参见https://www.google.com/googlebooks/chrome/med_26.html,深度设计文档参见https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md。
SYS_ADMIN权限启动容器命令:
docker container run -it --rm --cap-add=SYS_ADMIN zenika/alpine-chrome
此方法允许Chrome启用沙箱,但从Docker角度看授予了不必要的权限。
seccomp基于Jessie Frazelle的Chrome安全计算(seccomp)配置文件,这是最安全的运行方式。
配置文件:https://github.com/Zenika/alpine-chrome/blob/master/chrome.json,也可通过`wget https://raw.githubusercontent.com/jfrazelle/dotfiles/master/etc/docker/seccomp/chrome.json`获取。
启动容器命令:
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 https://www.chromestatus.com/
在浏览器中访问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 https://www.chromestatus.com/
命令(需no-sandbox):docker container run -it --rm -v $(pwd):/usr/src/app zenika/alpine-chrome --no-sandbox --print-to-pdf --hide-scrollbars https://www.chromestatus.com/
命令(需no-sandbox):docker container run -it --rm -v $(pwd):/usr/src/app zenika/alpine-chrome --no-sandbox --screenshot --hide-scrollbars https://www.chromestatus.com/
命令(需no-sandbox):docker container run -it --rm -v $(pwd):/usr/src/app zenika/alpine-chrome --no-sandbox --screenshot --hide-scrollbars --window-size=1280,1696 https://www.chromestatus.com/
命令(需no-sandbox):docker container run -it --rm -v $(pwd):/usr/src/app zenika/alpine-chrome --no-sandbox --screenshot --hide-scrollbars --window-size=412,732 https://www.chromestatus.com/
命令(需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 https://deno.land/std/examples/welcome.ts Warning Implicitly using master branch https://deno.land/std/examples/welcome.ts Compile https://deno.land/std/examples/welcome.ts 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 https://deno.land/std/fmt/colors.ts Warning Implicitly using master branch https://deno.land/std/fmt/colors.ts Hello world!
借助https://pptr.dev/#?product=Puppeteer&version=v1.15.0&show=api-class-browser工具,可扩展无头Chrome功能。通过NodeJS代码可实现更复杂的测试。
详见https://github.com/Zenika/alpine-chrome/blob/master/with-puppeteer目录。需https://github.com/puppeteer/puppeteer/blob/main/versions.js。
若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
通过https://pkgs.alpinelinux.org/package/edge/testing/x86/wqy-zenhei库支持亚洲语言页面(如https://github.com/Zenika/alpine-chrome/blob/master/with-puppeteer/src/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
已测试支持以下语言的网站:
https://m.baidu.com)https://www.yahoo.co.jp/)https://www.naver.com/)https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#working-with-chrome-extensions,无头模式不支持测试Chrome扩展,需借助Xvfb提供显示环境。
详见https://github.com/Zenika/alpine-chrome/blob/master/with-puppeteer-xvfb目录,需https://github.com/puppeteer/puppeteer/blob/main/versions.js。
若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的截图。
类似https://pptr.dev/#?product=Puppeteer&version=v6.0.0&show=api-class-browser,https://playwright.dev/docs/core-concepts/#browser也可扩展无头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 https://webglfundamentals.org/webgl/webgl-fundamentals.html
docker container run -it --rm --cap-add=SYS_ADMIN -v $(pwd):/usr/src/app zenika/alpine-chrome --screenshot --hide-scrollbars https://browserleaks.com/webgl
相关链接:
https://chromedriver.chromium.org/home是Selenium WebDriver控制Chrome的独立可执行文件。本镜像可作为Docker化Selenium测试的基础。详见https://www.browserstack.com/guide/run-selenium-tests-using-selenium-chromedriver。
https://github.com/aerokube/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目录提供以下示例:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 zenika/alpine-chrome 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: