hulk510 / playground

This is frontend playground with monorepo for WAI(haruka). created by turbo.
https://haruka.dad
0 stars 0 forks source link

Dockerfileの改善 #743

Open hulk510 opened 1 month ago

hulk510 commented 1 month ago

やりたいこと

Dockerfileでpnpmの構築やinstallのキャッシュを活かしてすぐビルドしてpushできるdockerfileを作りたい。 あと、今後何かサービスをdockerでデプロイしたいってなった時にもそれをそのまま活用できる形にしたい。

背景

dockerfileを作った。 今はapiをbuildしてimageを作成するくらいにしか使っていないが、apiをbuildする用途でしか使えないdockerfileになってる。(buildで他のサービスがエラーになったのでfilterしてる) そのため、今後何かで作りたいってなった時に使えない。

最初はdockerfileをapiのフォルダに入れてたんだけど、pnpmのドキュメント見るとrootに置いてた。 → 「全部nodeで動くものだし一つ書いてinstallしてしまえば使えるよなー」って思ったのでワイもそうしたい。

色々サービスとか作った時に、argocdとかでデプロイしやすくしておきたいよね!

マイクロサービス的な運用ももしかしたらできるのでは? これをするAPI、これをするためのAPIみたいな感じで分けても管理できそうだし楽しそうでは?

備考

必要性

現状Vercelでデプロイしているものが多いので特段必要ってわけではない。 サービスをk8sとかで運用したいとかってなってくると、imageにする必要が出てくるのでできてたら嬉しいなーって感じ。 vpsのargocdで立てれたりするし、何回もdeployしたりで確認できると思うしいいんじゃなかろうか? ていうかせっかくvps借りてるならそういうのも試してみたいよね。

terraformとか使えるようになってクラウドに自由に構築したりできるようになれば、eksとかにあげてマネージドにしてみても楽しそう!(まだまだかかりそうだけど) ずっとvpsじゃなくていつかは自分でコード上で構築できたらいいな。argocdとかってeksとかと一緒に使ったりもできるのかな?そこらへん知識無さすぎてまだよくわからんが。ワンポチで作ってるサービスがすぐに構築できるとか楽しそう!

こういう感じにしたい

https://discord.com/channels/700938549251407914/1166550043172544522/1265519285338378302

hulk510 commented 1 month ago

argocd側のmanifestsとかも変えることになるかな?今packageがplaygroundって一つになってるから、複数対応できるようにいつか変える

hulk510 commented 1 month ago

https://github.com/vercel/turbo/tree/main/examples/with-docker https://turbo.build/repo/docs/guides/tools/docker

with-dockerのexampleみた感じひとつでは管理せずにapplicationごとに管理しているみたい。

hulk510 commented 1 month ago

pnpmのdockerとかmonorepoの設定ってpnpm単体で行う場合の説明やから、確かにturbo使ったらもう少し変えて描ける気もするな。

hulk510 commented 1 month ago

Applicationごとに管理するけど、baseのpnpmをinstallしたり依存をfetchしたりをbaseイメージでやって turbo pruneで取得していい感じにみたいなのはできないのかね?

pruneでやったときにもpnpm fetchみたいなので全てinstallを終わらせておいて、みたいなfixup-twitter-linkみたいなやり方は使えるんだろうか?