
julezhou/playwright本镜像基于Ubuntu 22.04构建,集成Node.js 18环境和Playwright工具,提供高效的HTML转PDF/PNG格式的API服务。通过浏览器池管理实现并发处理,优化国内软件源配置以提升依赖安装速度,适用于需要将HTML内容渲染为图片或文档的业务场景。
| 变量名 | 默认值 | 说明 |
|---|---|---|
| BROWSER_WORKERS | 2 | 启动的Chromium浏览器实例数量 |
| MAX_CONTEXTS | 4 | 每个浏览器实例可创建的最大上下文数 |
准备以下文件:
执行构建命令:
bashdocker build -t render-service:latest .
bashdocker run -d -p 3000:3000 --name render-service render-service:latest
bashdocker run -d -p 3000:3000 \ -e BROWSER_WORKERS=4 \ -e MAX_CONTEXTS=8 \ --name render-service \ render-service:latest
请求示例:
bashcurl -X POST http://localhost:3000/render/pdf \ -H "Content-Type: text/plain" \ -d "<html><body><h1>测试PDF</h1><p>这是一个PDF渲染测试</p></body></html>" \ -o result.pdf
请求示例:
bashcurl -X POST http://localhost:3000/render/png \ -H "Content-Type: text/plain" \ -d "<html><body><h1>测试PNG</h1><p>这是一个PNG渲染测试</p></body></html>" \ -o result.png
响应示例:
json{ "status": "UP", "browsers": 2, "maxContextsPerBrowser": 4 }
dockerfileFROM ubuntu:22.04 LABEL authors="Jule" # 配置阿里云源 RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \ sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \ apt-get clean && apt-get update -y # 安装基础依赖 RUN apt-get install -y --no-install-recommends \ curl \ ca-certificates \ gnupg \ unzip \ wget \ fontconfig \ fonts-noto-cjk \ fonts-liberation \ libnss3 \ libatk1.0-0 \ libatk-bridge2.0-0 \ libcups2 \ libdrm2 \ libxkbcommon0 \ libxcomposite1 \ libxdamage1 \ libxfixes3 \ libxrandr2 \ libgbm1 \ libasound2 \ libpangocairo-1.0-0 \ libpango-1.0-0 \ libgtk-3-0 \ libxshmfence1 && \ rm -rf /var/lib/apt/lists/* # 安装Node.js 18并配置npm源 RUN curl -fsSL [***] | bash - && \ apt-get update -y && apt-get install -y nodejs && \ rm -rf /var/lib/apt/lists/* && \ npm config set registry [***] # 设置工作目录并拷贝业务文件 WORKDIR /app COPY package.json ./ COPY server.js ./ # 安装依赖和Playwright Chromium RUN if [ -f package.json ]; then npm install; fi && \ npx playwright install chromium --with-deps # 业务环境变量 ENV BROWSER_WORKERS=2 ENV MAX_CONTEXTS=4 # 暴露端口 EXPOSE 3000 # 启动命令 CMD ["node", "server.js"]
json{ "name": "render-service", "private": true, "type": "module", "dependencies": { "express": "^4.19.2", "playwright": "1.43.0" } }
(完整代码见原始描述,实现了Express服务、浏览器池管理及API接口逻辑)

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务