Google Chromeは動かない

はじめに WebアプリケーションのテストにHeadless Chromeを使いたいと思いました。 Lambdaで動かせると安いし起動も早いかなぁと思ってたのですがどうも動かないようです。 考えていた構成としてコンテナにChromeをインストールしてlambdaでコンテナを起動するというものでした。 結論 lambdaでは /tmp 以外が読み書きできないのでChromeが動かないようです。 具体的には /dev/fd とか /run に書き込めないって怒られます。 回避策 結局やりたかったことは手軽にheadlessをserverless環境で動かしたいということなのでECS Fargateの上で動かしました。 lambdaに比べると起動時間がだいぶ遅くなりましたが我慢しました。 EC2にECS clusterを構築すると多少早くはなりますが、ずっと起動しておくものでもないのでコスト的にFargateを利用しています。 参考 最新のGoogle Chromeとchromedriverを動かすDockerfile例 FROMdebian:latestWORKDIR/tmpRUN set -e \ && apt-get update \ && apt-get upgrade -y \ && sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \ && apt-get install -y wget gnupg unzip \ && wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \ && apt-get update \ && apt-get install -y google-chrome-stable udev \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ && CHROME_VERSION=$(google-chrome --version | awk '{print $3}' ) \ && echo "Chrome version: ${CHROME_VERSION}" \ && wget -q -O /tmp/chromedriver....

10月 20, 2023