12/9/2022
12/22/2022
GitHubアカウントでログインします。
ログインが完了したら、新規PostgreSQLの作成を行います。
New + を押し、PostgreSQLを押します。
Freeプランにチェックを入れ、Create Database を押します。
※ Freeプランでは、作成から90日の間しか利用できません。
StatusがCreatingからAvailableになっていることを確認します。
Internal Database URLは、後で使用するのでコピーしておいてください。
PostgreSQL作成完了後、Railsプロジェクトに追記をします。
/docker-rails-app/config/environments/production.rb
config.publicfileserver.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? || ENV['RENDER'].present?
ENV['RENDER']を追記します。
/docker-rails-app/config/database.yml
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: app_development
username: postgres
password: password
host: db
test:
<<: *default
database: app_test
username: postgres
password: password
host: db
production:
<<: *default
database: app_production
url: <%= ENV['DATABASE_URL'] %>
productionのurlに環境変数DATABASE_URLを設定します。
※ username、password、hostがdefaultのところに記載してある場合は、上記のようにdevelopment、testに直接記載します。
/docker-rails-app/config/puma.rb
workers ENV.fetch("WEB_CONCURRENCY") { 4 }
preload_app!
上記2つのコメントアウトを外し、workersの数を4に設定します。
/docker-rails-app/config/environments/development.rb
Rails.application.configure do
config.hosts.clear
end
全てのホスト名を受け入れられるように設定します。
/docker-rails-app
$ docker-compose exec web rails g controller posts index
続いてAPIの疎通を確認するために、HelloWorldを表示するだけのコントローラーを作成しておきます。
/docker-rails-app/config/routes.rb
Rails.application.routes.draw do
root to: 'posts#index'
end
postsコントローラーのindexアクションをパスのルートに設定しておきます。
/docker-rails-app/app/controllers/posts_controller.rb
class PostsController < ApplicationController
def index
render json: { message: "HelloWorld" }
end
end
ルートパスを叩くと、{ message: HelloWorld } が返るようにします。
PostgreSQL作成完了、Railsアプリの追記が終了後、renderで新規プロジェクト作成を行います。
New + を押し、Web Serviceを押します。
Configure account を押します。
Only select repositories にチェックを入れ、Select repositoriesからデプロイしたいGitHubのリポジトリを選択します。
選択が完了したら、Saveを押します。
選択したGitHubのリポジトリが追加されていることを確認し、Connect を押します。
Advanced を押し、環境変数の設定を行います。
Add Environment Variableで設定する値を増やすことができます。
Environment Variable は、後でも設定できます。
今回は、無料プランのFreeを選択
Web Services on the free plan are automatically spun down after 15 minutes of inactivity.
※ Freeでは、15分間リクエストがないとサーバーを落とすようになっています。
in progres からLiveになっていれば、成功です。
また、logが出力されるので、状態の確認をすることができます。
上記のようにPuma starting ... となっていれば正常に動いています。
左上のURLを押して、{ message: "HelloWorld" } が表示されていれば、本番環境のデプロイが完了です。