続・QiitaアドベントカレンダーのはてブランキングをSlackに通知する
2016年(去年)のアドベントカレンダーにこんなの出した。
今年もSpeeeアドベントカレンダーやってるので、会社のSlackに流すようこれをセットした。
1年前に作ったやつを流すためにやったこと
- Rubyのバージョンアップ(2.3.3 -> 2.4.2)
- bundle update
- rubocopのversionがあがったことにより、ソースコード全体に微妙な更新がかかった
- Qiitaがhttpsになった!
- アドベントカレンダーページのDOMも微妙に変わったのでxpathを調整
- Docker化
- heroku -> AWS Batch
詳しくはdiff見てくれw
Docker化
わかってたことなので今更あえて言う意味あんまないけど、DockerImageにしてしまうとポータビリティがあがってとてもいいですね。
https://hub.docker.com/r/nisshiee/adventcalendar-ranking/
↑publicにしてDocker Hubにpushしてあるので、試してみたい方はご自由にどうぞ。
Docker化でちょっとハマったところ
Rubyの入ったイメージは自分で作ってもいいけど、公式にもRuby
イメージが一応ある。
https://hub.docker.com/_/ruby/
あるんだけど、このイメージはロケールが設定されていないので、このまま使うとEncoding.default_external
がASCII-8BIT
になり、ファイル読み込みで死んだりします。
singleton method Encoding.default_external (Ruby 2.4.0)
ちなみに余談ですが、今回はSlackに投稿する本文をerbで定義していて、この日本語入りファイルの読み込みで死にましたw
同じ罠にハマってる人ネット上にちょいちょい居るので、ググれば出てくるんですが、同じようにDockerfile
でロケールの設定もしてやります。
adventcalendar-ranking/Dockerfile at v1.1.0 · nisshiee/adventcalendar-ranking · GitHub