headless chromeとSelenium WebDriverを使いたいと思ったときすぐ使えるような環境を作る。
Debian環境よりも簡単にインストールすることができたのでAlpine Linuxを使う。
Dockerfile
FROM ruby:2.6.4-alpine3.10 RUN apk add -U chromium chromium-chromedriver
これだけでOK。あとはgemをインストールしてオプションを渡して上げればすぐ使える。
Alpine Linuxのパッケージマネージャapkについてはこちらも要チェック
require 'selenium-webdriver' options = Selenium::WebDriver::Chrome::Options.new options.add_argument("--no-sandbox") options.add_argument("--headless") session = Selenium::WebDriver.for :chrome, options: options
スクリーンショットなど、日本語フォントが必要になった際はGoogle Noto Fontsをインストールすると良い。
Dockerfileに追記
RUN mkdir /noto
ADD https://noto-website.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip /noto
WORKDIR /noto
RUN unzip NotoSansCJKjp-hinted.zip && \
mkdir -p /usr/share/fonts/noto && \
cp *.otf /usr/share/fonts/noto && \
chmod 644 -R /usr/share/fonts/noto/ && \
fc-cache -fv参考リンク
