pyhoconをdockerコンテナで実行するやつ作った
表題まんま。作りました。
Python公式のalpineイメージにpipでpyhoconインストールしただけでーすwwwwwwww
pyhoconってなにさ?
HOCONフォーマットのpython用parser
HOCONっていうのは、LightBend社が開発した設定ファイル用のフォーマットで、playframeworkの設定ファイルで使われている。
犯行動機
今、管理画面をscala + play2で実装してて、設定ファイル(application.conf)はHOCONフォーマットなんだけど、他の言語からも設定ファイルを参照する必要があって、同じ項目を別フォーマットで二重管理するのは嫌なので、とりあえずpyhoconでjsonかyamlにフォーマット変換すればいいかと考えた。
HOCONのパーサーライブラリは他言語用のやつを開発してる人がちらほらいるんだけど、jsonかyamlに変換して読ませちゃったほうが無難そう。
で、他のメンバーにpythonの環境を作ってもらうのは面倒なので、dockerコンテナで起動するようにしたというお話。
使い方とか
docker run -i --rm stk132/pyhocon-cmd-docker -f yaml < /path/to/hocon.conf
な感じで。
jsonにしたいときは-fオプションをjsonにしたらいい。
ていうか、pyhoconコマンドそのままです。
非対応機能
pyhocon自体が非対応なんだと思うけど、play2のmodule設定のこれが入ってるとパースに失敗する。
play.modules.enabled += "yourmodule"
この+=記法に対応するものがyaml, jsonにはないからだよね?多分。
みなさんはどーしてるんですか?
最近のサービス開発だと、複数言語使うのは割と普通だと思うんですが、設定ファイルのフォーマットってどうしてるんでしょう?
ってところでしょうか?
play2の設定ファイルにHOCON以外のフォーマットが使えるんなら、他のメジャーフォーマットにしたほうが楽そう。