dockerized puppetter中不支持下载字体
我正在尝试在puppetter中截取我的网站的屏幕截图,但是该字体未正确打印,我使用的是自定义字体。我不确定这行代码是否不会在puppetter中执行!
<link href="//fonts.googleapis/css?family=Poppins:300,400,500,600,700%7CRoboto:300,400,500,600,700" rel="stylesheet">
我试图等待文档的字体准备好,但是仍然无法正常工作,仍然没有应用字体
await page.evaluateHandle('document.fonts.ready');
我正在使用puppeteer内置的铬浏览器。也我正在使用docker-compose,并且将sys_admin
分配给cap_add
该服务的属性。
这是我的dockerfile
FROM node:10.7.0-alpine AS base
ENV CHROME_BIN="/usr/bin/chromium-browser" \
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD="true"
RUN set -x \
&& apk update \
&& apk upgrade \
&& apk add --no-cache \
udev \
ttf-freefont \
chromium \
&& npm install [email protected]
RUN mkdir -p /app
WORKDIR /app
COPY ./ /app/
ENTRYPOINT ["npm"]
CMD ["start"]
这是在docker内部的样子
这就是chrome中的字体
回答如下:[我在puppetter github account上发布了一个问题,他们说,铬可能无法完全支持所有阿拉伯字体,因此建议将铬安装在容器内。
FROM node:10-slim
# Install latest chrome dev package and fonts to support major charsets (Chinese, Japanese, Arabic, Hebrew, Thai and a few others)
# Note: this installs the necessary libs to make the bundled version of Chromium that Puppeteer
# installs, work.
RUN wget -q -O - https://dl-ssl.google/linux/linux_signing_key.pub | apt-key add - \
&& sh -c 'echo "deb [arch=amd64] http://dl.google/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \
&& apt-get update \
&& apt-get install -y google-chrome-unstable fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf \
--no-install-recommends \
&& rm -rf /var/lib/apt/lists/*