MEGABANNER
GitHub Desktop

Render に Git からデプロイする方法

Render に Git からデプロイする方法

GitHub Desktopのインストール方法

GitHubはGitの仕組みを利用したインターネット上のサービスで、GitHub上にWebサイトのデータを保管しておくことができます。インストールから基本的な使い方まで下記URLより確認することができます。

Render に Git とデータベースでアプリをデプロイ

Render の Managed PostgreSQL を先に作成し、Web Service と接続する流れを解説します。

Render Dashboard Managed PostgreSQL GitHub Environment Variables Health Check

なぜ先にデータベースを作るのか

アプリが「データを保存する場所」を必要とする場合、先にデータベースを作って接続情報(ホスト名・ポート・DB名・ユーザー・パスワード)を取得しておくと、後で「接続できずにデプロイが失敗する」状況を避けられます。

イメージ: レストランを開店する前に冷蔵庫(データベース)を設置しておくと、料理(アプリ)が冷蔵庫にアクセスできない問題が起きません。

Render で Managed PostgreSQL を作る

ステップ 1:Render にログインしてダッシュボードを開く。左上や画面内の「New」ボタンを探す。
ステップ 2:「New」→「Postgre」を選択する(New のメニューに Database / Postgre があるはずです)。
ステップ 3:フォームに入力する(簡単にするための目安):
  • Name: (例)mytwitter-db(プロジェクト名に合わせると分かりやすい)
  • Region: 自分の近いリージョンを選ぶ(例: Oregon(US West)など)
  • Instance type: Free(開発用)または有料(運用なら有料推奨)
注意:無料インスタンスは期限や容量制限があります。重要データを長期間保存する場合は有料プランを検討してください。
ステップ 4:「Create」ボタンを押すとデータベースが作成されます。作成後、ダッシュボードに Database の詳細が表示されます。
ステップ 5:表示される接続情報をメモします(重要)
  • Hostname(例: dpg-xxxxx)
  • Port(通常 5432)
  • Database(例: mytwitter_db_xxx)
  • Username(例: mytwitter_db_xxx_user)
  • Password(表示または「Reveal」で確認)
  • External Database URL(コピーできる形式で表示される)
これらの値は後で Web Service の Environment(環境変数)に入れます。スクリーンショットやメモを取りましょう。

実際のダッシュボードで見るべき項目(例)

Database name
mytwitter-db
Status
available
Postgres version
17
Region
Oregon (US West)
Instance type
Free (256 MB RAM / 1 GB Storage)
Hostname
dpg-d3kqh4juibrs73c5121g-a
Port
5432
Database
mytwitter_db_6hx0
Username
mytwitter_db_6hx0_user
External URL
(外部接続用の URL をここでコピー)
Expiry
Your database will expire on November 10, 2025
コピー: 「External URL」はそのままアプリの接続文字列として貼れる形式になっていることが多いです。まずは External Database URL をコピーしておきましょう。

Web Service とデータベースをつなぐ(手順の復習)

1. Web Service を作る(Render → New → Web Service、GitHub を選択)
Build / Start コマンドはプロジェクトに合わせて入力。Dockerfile がある場合は自動検出されます。
2. Web Service の Settings → Environment を開く
ここにデータベース接続情報を環境変数として登録します。例は次のコードブロック。
SPRING_PROFILES_ACTIVE=prod
SPRING_DATASOURCE_URL=jdbc:postgresql://dpg-d3kqh4juibrs73c5121g-a:5432/mytwitter_db_6hx0?sslmode=require
SPRING_DATASOURCE_USERNAME=mytwitter_db_6hx0_user
SPRING_DATASOURCE_PASSWORD=(ここに表示されたパスワードを貼る)
ポイント: ?sslmode=require を忘れると接続できないことが多いです。パスワードは必ず Secret(非表示)で保存しましょう。

デプロイ後の確認(DB 周り)

  • アプリのログに「接続成功」やマイグレーション成功メッセージが出ているか確認
  • Flyway や Liquibase を使っているなら、マイグレーションテーブルが作成されたか DB で確認
  • Render の Database → Monitor で接続数やエラーをチェック
  • 無料インスタンスの期限表示がある場合は注意。期限前にバックアップを取る

よくあるミスとその直し方

  • 接続失敗(認証エラー): ユーザー名やパスワードが間違っている → ダッシュボードの値を再貼付け
  • ホスト名エラー: Internal/External を間違えている → Web Service と同じ Workspace なら Internal を優先
  • SSL エラー: JDBC に ?sslmode=require を付与していない → 追加して再デプロイ
  • 期限切れ: 「Your database will expire on …」が表示されたらバックアップと有料プラン検討

参考リンク

まとめ: Render でのデータベース作成は簡単ですが、作成後に表示される Hostname / Port / Database / Username / Password / External URL を確実に控えて Web Service の Environment に正しく設定することが最も大事です。無料インスタンスの制約と期限に注意し、重要データは定期的にバックアップしてください。

キャプチャ付き解説

データベース作成

ステップ 1:Render で Managed PostgreSQL を作る

Render にログインしてダッシュボードを開く。左上や画面内の「New」ボタンを探す。

new

ステップ 2:「New」→「Postgre」を選択する

Postgre

ステップ 3:フォームに入力する

  • Name: (例)mytwitter-db(プロジェクト名に合わせると分かりやすい)
  • Region: 自分の近いリージョンを選ぶ(例: Oregon(US West)など)
  • Instance type: Free(開発用)または有料(運用なら有料推奨)
フォームに入力する
Free
Create

ステップ 4:「Create」ボタンを押すとデータベースが作成されます。作成後、ダッシュボードに Database の詳細が表示されます。

Databaseの詳細

ステップ 5:表示される接続情報をメモします(重要)

  • Hostname(例: dpg-xxxxx)
  • Port(通常 5432)
  • Database(例: mytwitter_db_xxx)
  • Username(例: mytwitter_db_xxx_user)
  • Password(表示または「Reveal」で確認)
  • External Database URL(コピーできる形式で表示される)
接続情報

これらの値は後で Web Service の Environment(環境変数)に入れます。スクリーンショットやメモを取りましょう。

「External URL」はそのままアプリの接続文字列として貼れる形式になっていることが多い。まずは External Database URL をコピーしておきましょう。

Web Service とデータベースをつなぐ

1. Web Service を作る(Render → New → Web Service、GitHub を選択)

Render → New → Web Service

Build / Start コマンドはプロジェクトに合わせて入力。Dockerfile がある場合は自動検出されます。

GitHub

GitのPopular repositoriesLoadingの一覧が表示されます。

GitHub

Gitにコミットするまでの解説は下記URLに記載しています。

2. Web Service の Source Code で作成するファイルを選択

Docker

Javaアプリケーション、Spring BootのようなマイクロサービスをDockerコンテナで動かす際に Docker を選択する。

BranchはGitを確認して「main」か「master」を選択。

main

Instance Type → For hobby projects → Free を選択。

Free

Environment Variablesにデータベース接続情報を環境変数として登録します。

環境変数

Advanced → Health Check Path に「/actuator/health」を入力。

環境変数

Deploy web service をクリックして完了。

Render のデータベース接続情報を見つける方法

下記に示した環境変数の値は、Render ダッシュボードのどの箇所で確認・取得すれば良いかを画面操作に沿ってやさしく説明します。長い接続文字列の表示崩れを防ぐために折り返しと横スクロール両対応済みです。

SPRING_DATASOURCE_URL SPRING_DATASOURCE_USERNAME SPRING_DATASOURCE_PASSWORD Hostname / Port / Database

デプロイ構成(この投稿で使う想定)

コンテナとビルド

  • Dockerfile:マルチステージビルドを使用
  • ビルドステージ:eclipse-temurin:21-jdk を使ってビルド(./mvnw package
  • ランタイムステージ:軽量な 21-jre イメージで JAR を実行
  • 目的:ビルドはフル JDK、実行は小さな JRE でコストとサイズを削減

環境変数(Render の Web Service に設定)

SPRING_PROFILES_ACTIVE=prod SPRING_DATASOURCE_URL=jdbc:postgresql://<DB_HOST>:5432/<DB_NAME>?sslmode=require SPRING_DATASOURCE_USERNAME=<DB_USER> SPRING_DATASOURCE_PASSWORD=<DB_PASSWORD>

Health Check

  • Health Check Path: /actuator/health

対象の環境変数(例)

SPRING_PROFILES_ACTIVE=prod SPRING_DATASOURCE_URL=jdbc:postgresql://dpg-d3kqh4juibrs73c5121g-a:5432/mytwitter_db_6hx0?sslmode=require SPRING_DATASOURCE_USERNAME=mytwitter_db_6hx0_user SPRING_DATASOURCE_PASSWORD=(ここに表示されたパスワードを貼る)

ポイント: SPRING_DATASOURCE_URL は Hostname・Port・Database を組み合わせて作成します。Render が表示する External Database URL をそのまま使える場合はコピーしてください。長い文字列は自動で折り返されつつ、必要なら横スクロールで正確にコピーできます。

Render ダッシュボード上で確認する手順(画面操作)

  1. Render にログインし、左のメニューから Databases を選択する。
  2. 一覧から該当のデータベース(例: mytwitter-db)をクリックする。
  3. 表示されるデータベース詳細画面で Info または Connect タブを探す。
  4. そこで以下の値を確認・コピーする:Hostname, Port, Database, Username, Password, External Database URL。
  5. Password は隠れている場合があるので、右側の Reveal(表示)ボタンを押してコピーする。
ヒント: External Database URL が表示されているなら、JDBC 接続文字列としてそのまま使えることが多いです。表示に ?sslmode=require がなければ付け足してください。

Render のどのフィールドがどの環境変数に対応するか

環境変数
Render ダッシュボードの場所
SPRING_DATASOURCE_URL
External Database URL をそのまま貼る、または Hostname/Port/Database を組み合わせて作成
SPRING_DATASOURCE_USERNAME
Connect または Info タブ内の Username
SPRING_DATASOURCE_PASSWORD
Connect または Info タブ内の Password(Reveal で表示)
Hostname
Info / Connect 内の Hostname(例: dpg-xxxxx
Port
Info / Connect 内の Port(通常 5432
Database
Info / Connect 内の Database(例: mytwitter_db_6hx0

JDBC URL の作り方(具体例)

Render の Hostname / Port / Database を使って、JDBC 形式に組み立てます。長い文字列は折り返しと横スクロールの両方で扱えるようにしています。

jdbc:postgresql://[Hostname]:[Port]/[Database]?sslmode=require
jdbc:postgresql://dpg-d3kqh4juibrs73c5121g-a:5432/mytwitter_db_6hx0?sslmode=require

必須: Render の Managed PostgreSQL は基本的に SSL を要求します。必ず ?sslmode=require を付けてください。

Environment に登録する手順(Web Service 側)

  1. Render ダッシュボード → 対象の Web Service をクリック
  2. Settings タブ → Environment に移動
  3. 新しい Environment 変数を追加:
    • Key: SPRING_PROFILES_ACTIVE value: prod
    • Key: SPRING_DATASOURCE_URL value: (上で作成した JDBC URL)
    • Key: SPRING_DATASOURCE_USERNAME value: (Username)
    • Key: SPRING_DATASOURCE_PASSWORD value: (Password) — Secret / hidden にする
  4. Save して、必要なら Manual Deploy を実行または次の push を待つ
注意: パスワードは必ず Secret(表示を隠す)で登録してください。間違った値は接続エラーにつながります。

よくある間違いと対処

  • Password を間違える: Render の Password を Reveal して正しくコピーし、Environment に貼り付ける。
  • Internal と External を取り違える: 同一 Workspace 内のサービスなら Internal Hostname を使うと高速で安全。外部接続やローカルからの接続は External URL を使う。
  • ?sslmode=require を忘れる: SSL エラーで接続できない。JDBC の末尾に追加して再デプロイ。
  • ポートが違う: Render は通常 5432。異なる場合はダッシュボードの表示を再確認。
  • JAR 名や Start Command が違う: Docker を使う場合は Dockerfile の ENTRYPOINT/CMD、Java 実行時は正しい JAR 名とポート設定を確認する(例: java -jar target/app.jar)。

最後に:チェックリスト

  • Render の Database 詳細画面で Hostname / Port / Database / Username / Password を確認した
  • External Database URL をコピーし、JDBC 形式に変換した(または External URL をそのまま使用)
  • Environment に正しい値を登録し、Password は Secret にした
  • デプロイ後に Logs と Health Check で DB 接続が成功していることを確認
  • Dockerfile を使う場合はマルチステージでビルド→軽量 JRE で実行する構成が反映されている

参考リンク

まとめ: 指定された環境変数の値は、Render の Database 詳細画面(Info / Connect)で確認できる Hostname・Port・Database・Username・Password の組み合わせから作成します。External Database URL が使える場合はそれをそのまま利用し、必ず ?sslmode=require を付けて接続してください。デプロイ構成はマルチステージ Docker ビルド(JDK でビルド→JRE で実行)と、環境変数・Health Check の正しい設定を前提としています。

Ungrouped Services の一覧に ☑Deployed となっていたらデプロイ完了です。

Ungrouped Services

メッセージアプリのデプロイ完了サイト

アプリのスクリーンショット

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です