仕事の関係で今更ながらJavaの勉強しています。Spring Bootはとっつきやすいフレームワークなので参考書読みながらHello Worldから始めてるのですが、アプリの公開(Deploy)に関してはどうしたもんかと。
Railsは得意分野なのでRender(最近Herokuが有料化に伴い、こっち使う人が増えた)という選択肢が思い浮かんだのだけど情報が少ないようですね。2023年時点でお金かけずBootのアプリを公開する方法について書いたら価値あるかと思ってやってみました。Stackoverflowで聞きまくって、マイナス評価もらいながらも頑張って調べたので、この情報を還元します。
TL;DR
Render.comにWebアプリケーションを作成して、GithubにBootのアプリをコミットしたものを用意して連動させる。
以下の Dockerfile をアプリケーションルート配下に配置する。
FROM maven:3-eclipse-temurin-17 AS build
COPY . .
RUN mvn clean package -Dmaven.test.skip=true
FROM eclipse-temurin:17-alpine
COPY --from=build /target/[YOUR APP NAME & VERSION].jar demo.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "demo.jar"]
※[YOUR APP NAME & VERSION]には下図のArtifactとVersionをハイフンで繋いだものを入れてください
Spring Bootアプリケーションの開発
この辺とかにたくさん記述があるので参照すべし。
https://qiita.com/yasushi-jp/items/e6c6686f06c4390857ce
https://qiita.com/suema0331/items/cb13cf760792d81ee7ec
https://qiita.com/ist-a-ku/items/1d278619f241f4800bb2
Render.comの操作
-
Renderを開く
https://render.com/
-
Github連携を行う
Thanks to
回答してくれた皆さんに感謝!質問から回答がほぼ10分かかってないあたりすごすぎ。
https://stackoverflow.com/questions/76903843/how-to-write-dockerfile-for-render-com-deployment/
https://stackoverflow.com/questions/76904436/error-failed-to-solve-failed-to-compute-cache-key
https://stackoverflow.com/questions/76904613/why-i-dont-find-jar-file/