pleromaをリリースビルドに変更

Overview

本題

今まで私のpleromaサーバ(https://pl.asterism.xyz)は、以下のDockerfileを参考に動かしていました。

https://github.com/angristan/docker-pleroma

ただ、いつの間にか増えたPleroma公式のDockerfileだと、Elixir1.9で追加されたmix releaseコマンドを使ってpleromaを単一の実行ファイルにし、それをマルチステージビルドでただのalpineに持ってきて動かしているようです。(Pleromaの中ではOTPリリースと呼ばれているもの)

どうやらOTPリリースを使うとElixirそのものの実行環境が不要になるみたい。

元々使っていたDockerfileだと、Pleromaコンテナ起動時に毎回コンパイルが走る為そこそこのリソースが必要でした。 (なんでそんな事してるかって言うと設定ファイルをDocker Hubにあげるコンテナイメージの中に組み込むわけには行かないから。ただし後から色々調べてると普通に環境変数から読み込ませるような設定ファイルを準備できるってのを知ってしまい……)

んで、リソースケチって運用してるうちの鯖を少しでも快適にするためにOTPリリースを使うことを決意。

出来上がったものがこれ。

github.com/orlea/pl.asterism.xyz/commit/…

ちゃんと計測してないけど明らかに起動は早くなりました。

RAMも減ったのかな?記事書いてて思い出したのでprometheus起動中……。

蛇足

あとまだ時間無くてgithubに公開してないけど、mstdn鯖とpl鯖のコンテナにメモリリミットかけるようにしました。

github.com/orlea/pl.asterism.xyz/commit/…

github.com/orlea/mstdn.asterism.xyz/commit/…

github.com/orlea/mstdn.asterism.xyz/commit/…

mastodon_streamingはRAM64MB制限、pleromaは512MB制限です。

mastodonのwebとsidekiqにもちゃんと制限かけたいし、なんならpleromaはもっと少なくても動くと思う。

が、mastodon_webとpleromaはimagemagicも動いてるからこの程度なんかなぁとか思ってます。(実際512MB制限にしたらmastodonのweb落ちまくりでどうにもならぬ)

とはいえたかがRAM1GBのEC2スポットインスタンスを数台並べて動かしてること考えると正直512MBに制限した所で対して変わらないような気もする……。

comments powered by Disqus