今まで私のpleromaサーバ(https://pl.asterism.xyz)は、以下のDockerfileを参考に動かしていました。releaseコマンドを使ってpleromaを単一の実行ファイルにし、それをマルチステージビルドでただのalpineに持ってきて動かしているようです。(Pleromaの中ではOTPリリースと呼ばれているもの)どうやらOTPリリースを使うとElixirそのものの実行環境が不要になるみたい。使っていたDockerfileだと、Pleromaコンテナ起動時に毎回コンパイルが走る為そこそこのリソースが必要でした。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に制限した所で対して変わらないような気もする......。