ヒマなのでサブスク見直しをしておりまして、Flickr → Amazon Photos、Dropbox Plus → Sync、GitHub Pages → GitLab Pages などを決行しきった。flickrは17年お世話になりました。これで15年以上使い続けているのはGmailとrememberthemilkくらいかな。
その一環で、10年くらい使ってたレンタルサーバーとかVPSも整理することにした。
まず自分用バッチがわんさかあって、ルー語変換をはじめとする謎アプリもわんさかあるww 捨ててしまうのもアレなので生かす。最近書いたのはgoが多く移動楽なのだけど、むかーし書いたperlはcpanfileもなかったりperl 5.8で動いてたり、CGI.pmのやつもあるのでそのへんなんとかする。
とりあえず使ってる全依存モジュールをつっこんだcpanfileを用意して、最強のdocker imageを作る作戦。しかも最新のperl 5.32をベースにdocker buildしてみる。これはきっと何か入らないモジュールがあったりするんじゃないか〜と構えていたけど、なんとすんなり入って!!感動した。
perlエコシステム整えしてくれてる人ありがとうですわ。
何も考えずbusterベースにしておけば問題なし。ただ変換系で多用してたmecabはさすがに入ってないので(笑)そこだけ調整しこんなかんじ。PERL_TEXT_MECAB_ENCODINGは完全に忘れていたのでこっちにも書いておいた。utf-8じゃなくutf8を指定しているのはネタモジュールがほとんどutf-8-strict
じゃないの前提としてたから。それはOK。
バッチはこんなかんじで全部動作してるし、
docker run --rm --init -v `pwd`:/app $(DOCKER_IMAGE) perl slack2email.pl --from...
謎アプリ群は、(CGI.pm 利用のやつはPSGIに書き換えるのは簡単なのでそれはやった)そんで docker-compose で言うとこういうノリですんなり全稼働した。
services:
samurai.koneta.org:
volumes:
- ./samurai.koneta.org/:/app
image: $(DOCKER_IMAGE)
command: [ "plackup", "-E", "production", "-a", "app.psgi" ]
init: true
ports:
- "8081:5000"
bakumatsu.koneta.org:
...
これでどこでも持っていける! まだまだうごくぞ。
ただ1個、ぼくTwitterを「BitlBeeっていうtwitterなどをIRCサーバーにみたててくれるやつをxinetdで立てつつ、そこにTiarra(なつかしいww)で接続、tiarraのログモジュールで出したファイルを1時間ごとにgrepしてメールに送りつける」っていうなんともマニアックな読み方を10年間やってまして。それは素直にtwitter apiを使うやつに書き直した。