最近有需求要進行瀏覽器截圖,就開始研究Puppeteer。因為項目是k8s的所有還是遇到了一些坑來做記錄。
1.依賴
基礎鏡像缺少Chromium所需要的依賴,所有導致運行報錯。
centos安裝依賴
yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc -y
alpine安裝依賴
# 設置阿里鏡像源 echo "https://mirrors.aliyun.com/alpine/edge/main" > /etc/apk/repositories echo "https://mirrors.aliyun.com/alpine/edge/community" >> /etc/apk/repositories echo "https://mirrors.aliyun.com/alpine/edge/testing" >> /etc/apk/repositories # 安裝Chromium及依賴,包括中文字體支持 apk -U --no-cache update apk -U --no-cache --allow-untrusted add zlib-dev xorg-server dbus ttf-freefont chromium wqy-zenhei@edge -f
2.時區問題
容器的時區一定要設置好,不然Chrome瀏覽器的時區也會跟着出問題。
因為暫時不太清楚怎么在Puppeteer中對Chrome設置時區,所有只能先在dockerfile中加入如下內容:
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
