Dockerで日本語のChromeで動作するseleniumを起動する。

seleniumをDockerで動かすとき 通常はここに従ってこのようなdocker-compose.ymlを書くのですが

version: '2'

services:
  hub:
    container_name: "hub"
    image: selenium/hub
    ports:
      - '4444:4444'

  chrome:
    container_name: "selenium_chrome"
    image: selenium/node-chrome-debug #イメージをそのまま使う
    environment:
      - HUB_PORT_4444_TCP_ADDR=hub
      - HUB_PORT_4444_TCP_PORT=4444
    depends_on:
      - hub
    ports:
      - '5900:5900'

イメージをそのまま使うのではなくてDockerfileから日本語を設定する処理を追記して

FROM selenium/node-chrome-debug
LABEL authors=SeleniumHQ
USER root
#=================
# Locale settings
#=================
ENV LANGUAGE ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
RUN locale-gen ja_JP.UTF-8 \
  && dpkg-reconfigure --frontend noninteractive locales \
  && apt-get update -qqy \
  && apt-get -qqy --no-install-recommends install \
    language-pack-ja \
  && rm -rf /var/lib/apt/lists/* /var/cache/apt/*

USER seluser
EXPOSE 5900 

このdockerfileを呼び出すようにすると

version: '2'

services:
  hub:
    container_name: "hub"
    image: selenium/hub
    ports:
      - '4444:4444'

  chrome:
    container_name: "selenium_chrome"
    build: ./ #同階層のdockerfileを読み込む
    environment:
      - HUB_PORT_4444_TCP_ADDR=hub
      - HUB_PORT_4444_TCP_PORT=4444
    depends_on:
      - hub
    ports:
      - '5900:5900'

日本語でchromeを使ったスクレイピングができるようになります