🐥
PaaS | Render.com | Java | Spring Boot | Docker | PostgreSQL | github
Java
PaaS
Render.com
Cloud Application Platform | Render
- GitHubアカウントが使える。
基本
"Create a new Service"でプロジェクトを作成し、そこにアプリとデーターベースを作成する準備をする。
名称 | 内容 |
---|---|
"Create a project" | プロジェクト作成 |
"New Web Service" | アプリ作成準備 |
"New PostgreSQL" | データーベース準備 |
- "Create a project"
- "Dashboard"の"Projects"(Overview)で、"Create a project"をクリックする。
- "Project name"を入力して"Create a project"ボタンをクリックする。
- "New Web Service"
- "Dashboard"の"Projects"(Overview)で、作成したプロジェクト名をクリックする。
- "Production"の右端にある"+"アイコンをクリックして、"Create new service"をクリック。
- "New Web Service"をクリック。
- "Source Code"の"Git Provider"でリポジトリを"Connect"する。
- 続けて、必要な項目を入力していく。最低限設定が必要な項目は表の通り。
項目 | 内容 |
---|---|
Name | アプリ名の設定。A unique name for your web service. |
Language | "Docker"を選択。 |
Branch | Githubで選択しているリポジトリの使用するブランチを設定。 |
Region | 適当に選択。 |
Instance Type | Render.comは"Free"が選択できる。(512MB, 0.1CPU) |
Environment Variables | 環境変数を必要に応じて設定する。 |
- "Deploy Web Service"ボタンをクリック。
- "Dashboard"の"Projects"(Overview)で、作成したプロジェクト名をクリックすると上の方のWEBサービス名とGitリポジトリが記載されている下の辺りに表示されているURLをクリックしてWEBアプリにアクセスできる。
- "Dashboard"の"Projects"(Overview)で、"STATUS"が"Available"になるとデプロイ正常完了。
- "New PostgreSQL"
- "Dashboard"の"Projects"(Overview)で、作成したプロジェクト名をクリックする。
- "Production"の右端にある"+"アイコンをクリックして、"Create new service"をクリック。
- "New PostgreSQL"をクリック。
- 続けて、必要な項目を入力していく。最低限設定が必要な項目は表の通り。
項目 | 内容 |
---|---|
Region | 適当に選択。 |
PostgreSQL Version | アプリに合わせてPostgreSQLのバージョンを選択。 |
"Plan Options" "Instance Type" | Render.comは"Free"が選択できる。(256MB/RAM, 0.1CPU, 1GB/Storage) |
- "Create Database"ボタンをクリック。
- PostgreSQLの接続情報
- "Dashboard"の"Projects"(Overview)で、作成したプロジェクト名をクリックする。
- "Info"のページでPostgreSQLの接続情報を確認できる。
注意点
* デフォルトのポート番号は10000番になっている。
- ポート番号は"Environment Variables"で
PORT
を環境変数として設定して変更できる。しかし、18012, 18013, 19099は予約済みのため使用できない。 - "0.0.0.0"をバインドしないといけない?
host-and-port-configuration
Dockerfile
Dockerfileにはデフォルトポート番号である10000番に合わせて、EXPOSE 10000
を設定している。
# ベースイメージを指定
FROM maven:3.8.3-openjdk-17-slim AS build
# 作業ディレクトリを指定
WORKDIR /app
# Maven Wrapperのセットアップ
COPY .mvn .mvn
# Mavenプロジェクトをビルド
COPY pom.xml .
RUN mvn -B dependency:go-offline
# アプリケーションのビルド
COPY src src
RUN mvn -B package -DskipTests
# JREベースイメージを設定
FROM openjdk:17-jdk-slim
# アプリケーションのJARファイルをコピー
COPY /app/target/*.jar /app/app.jar
#デフォルトポート番号である10000番に合わせた
EXPOSE 10000
# アプリケーションの実行
CMD ["java", "-jar", "/app/app.jar"]
application.properties (SpringBoot)
- DBへの接続情報は環境変数で指定。環境変数は"Environment Variables"で設定している。
- デフォルトポート番号である10000番に合わせて、
server.port=${SER_PORT}
を設定している。${SER_PORT}
は"Environment Variables"でSER_PORT
を定義して10000
の値を設定している。
spring.application.name=(アプリ名)
spring.datasource.url=${DB_URL}
spring.datasource.username=${DB_USERNAME}
spring.datasource.password=${DB_PASSWORD}
spring.datasource.driverClassName=org.postgresql.Driver
spring.sql.init.encoding=utf-8
spring.sql.init.mode=always
spring.jpa.open-in-view=false
spring.profiles.active = ${ENV:development}
server.port=${SER_PORT}
spring.datasource.schema=classpath:schema.sql
spring.datasource.data=classpath:data.sql
spring.datasource.initialization-mode=always
Discussion