Render.comのフリープランでWEBアプリをデプロイしたときのことを忘れないよう記録しておく。
- フリープランではデータベースにPostgresしか選択肢がない
あらかじめPostgresを使用することを踏まえておく
前提
- githubにリポジトリがある
- リポジトリにrender.yamlがある
services:
- type: web
name: sao-web
runtime: docker
plan: free
dockerfilePath: ./Dockerfile.prod
envVars:
- key: SAO_PROFILE
value: prod
- key: DJANGO_SECRET_KEY
generateValue: true
データベース作成
フリープランのデータベースは30日を過ぎるとアクセスできなくなる。
そうなったら有料プランに移行しない限りアクセスできない。
フリープランで大切なデータを入れてはいけない。
フリープランだとrender.yamlからデータベースの作成ができないっぽい(ソース不明)。
なのでrender.comのサイト上でPostresサービスを作成する。
ここで設定するのは2か所だけ
- Name
- Render.comの中で識別するためのサービス名
- Plan Options
- 料金プラン
データベースの作成は以上
環境変数グループを作成する
データベースのホストやらユーザー名やらをWEBアプリ側から参照させるために
環境変数グループを作成する
(render.yamlに書いてもいいけどデータベースユーザーのパスワード書くわけにいかないしね)
- render.yamlからデータベースサービスの情報を参照する方法がありかもしれないけど今はわからない。
データベースサービスで定義されている情報でWEBサービスに必要なのはこれ
- Hostname -> DB_HOST
- Port -> DB_PORT
- Database -> DB_NAME
- Username -> SAO_DB_USER
- Password -> SAO_DB_PASSWORD
.envファイル食わせて作成することもできる
Blueprintを作成する
githubのリポジトリの一覧からデプロイしたいリポジトリにコネクトする
サービス名を入力する
デプロイが始まるとリポジトリにあるrender.yamlの内容にしたがってwebサービスが作られるが、失敗する
環境変数グループとWEBサービスをリンクする
Projectページを開くとサービスのリストにBlueprintから作成されたWEBサービスがあるので
それをクリックする
左のメニューのEnvironmentをクリック、右ペインのLinked Environment GroupsのLink Environment Groupリストからさっき作った環境変数グループを選択してLinkをクリックする。
トップ画面に戻るとDeployが始まってるので結果を確認する。問題なければwebサービスのデプロイは完了する