前提
・dockerがインストール済み
・VSCodeのremoteエクステンションがインストール済み
・あまり細かいことを考えないでさくっと使い捨てたい
・local環境は汚れないとhappy
#####手順
Seleniumの方の公式イメージがあるので、ベースに使用します。
とりあえず以下のコマンドを叩いてコンテナを作成。
(なんとなくchromeで動作している画面を見たかったからchromeのdebug版にしていますが、もちろんどのイメージでもOK)
$ docker run -d -p 4444:4444 -p 5900:5900 -v /dev/shm:/dev/shm selenium/standalone-chrome-debug
コンテナが起動したら、VSCodeの左側、リモートエクスプローラから立ち上げたコンテナを探し、右側のプラスマークがついたボタン(attach to container)をクリック
vscodeでコンテナが開かれるので、apt-getでrubyやpythonなどの言語やライブラリを導入すればもう完成!
好きな言語スクリプトを書けばこのままスクレイピングが可能です。
debug版ならselenium動作中の画面も、Finderからサーバへ接続を選択し、接続先:vnc://localhost:5900/、パスワード:secretを入力すると見れます。(macの場合)
#####最後に
ベースのイメージの段階でseleniumやchromeなどは導入ずみだしパスも通っているので、selenium周りは一切触る必要ありません。これは楽!
もちろん、dockerfileを落としてきて、imageをbuildする時点で言語やらライブラリも入れてしまう方がいいのだけど、面倒なので今回はしてません。
また、seleniumコンテナと別にrubyコンテナを作るのでもいいのだけど、使う時のコンテナ起動し忘れ問題などの面倒を考え、今回はコンテナ1つの構成にしています。