在Alpine Linux上运行Chrome的Docker镜像
Zenika/alpine-chrome是一个基于Alpine Linux的轻量级Docker镜像,专门用于运行无头Chrome浏览器。这个项目旨在提供一个小巧、易用且安全的Chrome运行环境,适用于各种自动化Web测试、截图、PDF生成等场景。
主要特点
- 📦 极小的镜像体积:压缩后仅423MB
- 🐳 基于Docker,易于使用和复现
- 🔐 提供多种安全使用方式
- 🌐 支持国际化:可处理亚洲语言字符
- 💄 支持WebGL和emoji渲染
- 📄 采用Apache 2.0开源协议
- 👥 社区贡献,持续维护
可用注册表
该镜像可以从以下位置获取:
- Docker Hub:
zenika/alpine-chrome
- GitHub Container Registry:
ghcr.io/zenika/alpine-chrome
- Google Cloud Registry (多个区域可用)
支持的标签
latest
,100
: 最新稳定版with-node
: 包含Node.js环境with-puppeteer
: 包含Puppeteerwith-playwright
: 包含Playwright- 其他历史版本标签
为什么使用无头Chrome?
在Web开发中,快速运行端到端测试非常重要。像Puppeteer这样的工具使开发人员可以进行测试、表单自动化、网页爬取、生成截图和时间线等操作。事实上,Chrome本身就直接支持其中的一些功能!
安全使用方式
提供了3种安全使用该镜像的方式:
- 使用
--no-sandbox
参数 - 使用
SYS_ADMIN
capability - 使用
seccomp
配置文件(推荐)
命令行使用示例
# 打印DOM
docker run -it --rm zenika/alpine-chrome --no-sandbox --dump-dom https://www.example.com
# 生成PDF
docker run -it --rm -v $(pwd):/usr/src/app zenika/alpine-chrome --no-sandbox --print-to-pdf --hide-scrollbars https://www.example.com
# 截图
docker run -it --rm -v $(pwd):/usr/src/app zenika/alpine-chrome --no-sandbox --screenshot --window-size=1280,1696 https://www.example.com
与其他工具集成
该镜像可以与以下工具集成使用:
- Puppeteer
- Playwright
- WebGL
- Chromedriver
- Selenoid
运行示例
项目提供了多个示例,包括:
- 使用docker-compose启动Chrome与nginx服务
- 在Kubernetes中运行无头Chrome
- 使用X11服务器进行实验
版本信息
- Alpine: 3.19.1
- Chromium: 121.0.6167.85
- 镜像大小: 633 MB
贡献者
该项目得到了众多贡献者的支持,包括代码贡献、问题报告、文档编写等。我们感谢所有为项目做出贡献的人!
总结
Zenika/alpine-chrome为在Alpine Linux上运行Chrome提供了一个轻量级且功能强大的解决方案。无论是用于自动化测试、网页截图还是PDF生成,它都是一个值得考虑的选择。项目持续更新和维护,欢迎社区参与贡献。
如需了解更多信息或报告问题,请访问GitHub项目页面。Alpine Chrome由Zenika维护,采用Apache 2.0许可证开源。