我们使用了 timesnap 库来捕获 html 页面的帧。
它在 ubuntu 系统上运行,但我们使用 docker 镜像在 aws 批处理中推送此代码,然后我们返回以下错误消息:
<块引用>/node_modules/puppeteer/.local-chromium/linux-722234/chrome-linux/chrome: 加载共享库时出错:libX11-xcb.so.1:无法打开 共享目标文件:没有那个文件或目录
(node:77) UnhandledPromiseRejectionWarning: 错误: 启动失败 浏览器进程!
以下是我的 docker 镜像示例:
FROM ubuntu:18.04
# Create app directory
WORKDIR /var/www/html/aws-batch-node/
RUN apt update && apt install -y \
chromium-browser \
chromium-chromedriver
RUN apt-get install -y libgbm-dev
RUN apt install -y gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
FROM node:13.11.0
# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./
RUN npm install
RUN node ./node_modules/puppeteer/install.js
# Bundle app source
COPY . .
EXPOSE 8080
ENTRYPOINT [ "node", "index.js" ]