RailsとSideKiqを配置します.を使用してCOM
Render.com Herokuにとって大きな代替手段である新しいプラットフォームのサービス提供です.Herokuとして“アプリ”の観点で考えるよりもレンダリングには「サービス」の概念があります.それで、あなたの柵アプリはサービスですあなたのデータベースは別のサービスになりますREDISは別のサービスなどのサービスも潜在的に複数のアプリケーション間で共有することができます.
すべての些細なレールアプリは、これらの日のニーズBackground Jobs そして、これのための人気のフレームワークはSidekiq . SideKiqデータストアとしてRedisを使用します.つまり、4つのサービスを展開してアプリケーションを実行する必要があります. Rails Webサービス SideKiqバックグラウンドサービス PostgreSQLデータベース レッドシス レンダリングは「インフラストラクチャとしてのインフラストラクチャ」をサポートしています
レンダリングは3つのサービスタイプをサポートします Webサービス[インターネット経由で公開] プライベートサービス[他のサービスにのみさらされる] バックグラウンド労働者
レール
WebサービスとしてRails Webアプリケーションを配備します.Sidekiq Workerはバックグラウンドワーカーとして、RedisはRender maintained
まず、生産のためのデータベースとプーマの設定を更新する必要があります.フォローthis section from Render's Rails deployment guide そして、このポストに戻ります.
次に、アプリケーションが配備されたときに実行されるビルドスクリプトを追加する必要があります.ファイルを作成する
次のコマンドを実行してスクリプトを実行可能にします.
上記のファイルのほとんどは自明です.私はあなたのアプリケーションに固有の何かにサービス名を変更することをお勧めします.唯一のトリッキーなビットは
これを行う最も簡単な方法は
そして最後に、私たちがしなければならないことは、このYAMLファイルをレンダリングするように接続することです.レンダリングダッシュボードに移動し、右上隅に新しいをクリックし、青写真を選択します.
画面の指示に従ってあなたのリポジトリを接続し、行くには良いはずです!
結論
私は、私のアプリで上記のアプローチを使用していますScattergun . 今まで私は本当に満足している.私は、将来のためにレンダリングチームがストアに持っているものを見ることに興奮しています、そして、個人的に、私は予見可能な将来のすべての私のプロジェクトのために彼らを利用する予定です.
更なる読書 Render's guide to deploying Rails Render's guide to deploying Sidekiq Render's guide to deploy persistent Redis Render vs Heroku Splasgunはあなたの着陸ページに電子メールアドレスを収集し、あなたのメーリングリストにメールを送信する最も簡単な方法です.Get started for free !
すべての些細なレールアプリは、これらの日のニーズBackground Jobs そして、これのための人気のフレームワークはSidekiq . SideKiqデータストアとしてRedisを使用します.つまり、4つのサービスを展開してアプリケーションを実行する必要があります.
git
我々のアプリケーションのコードと一緒に.Ruby環境はネイティブにサポートされており、また、PostgreSQLのデータベースを提供しています.他に何かのために、私たちはDockerイメージを使用する必要があるので、Redisを使用することは小さいビットのトリッキーです.At the time of writing, Render is working on a managed Redis offering. When that's live, it should be easier to deploy and manage a Redis service.
レンダリングは3つのサービスタイプをサポートします
https
ポート80でレール
WebサービスとしてRails Webアプリケーションを配備します.Sidekiq Workerはバックグラウンドワーカーとして、RedisはRender maintained
Dockerfile
. まず、生産のためのデータベースとプーマの設定を更新する必要があります.フォローthis section from Render's Rails deployment guide そして、このポストに戻ります.
次に、アプリケーションが配備されたときに実行されるビルドスクリプトを追加する必要があります.ファイルを作成する
render-build.sh
あなたのbin
ディレクトリと次のコンテンツを追加します#!/usr/bin/env bash
# exit on error
set -o errexit
bundle install
bundle exec rake assets:precompile
bundle exec rake assets:clean
bundle exec rake db:migrate
This script is also from Render's Rails deployment guide.
次のコマンドを実行してスクリプトを実行可能にします.
chmod a+x bin/render-build.sh
最後に、インフラストラクチャ仕様を作成します.プロジェクトのルートで、render.yaml
をペーストします.services:
- type: web
name: myapp-web
env: ruby
region: frankfurt # or oregon
plan: starter
numInstances: 1
buildCommand: ./bin/render-build.sh
startCommand: REDIS_URL="redis://${REDIS_HOST}" bundle exec puma -C config/puma.rb
domains:
- example.com # replace with your domain name
envVars:
- key: DATABASE_URL
fromDatabase:
name: myapp-db
property: connectionString
- key: REDIS_HOST
fromService:
name: myapp-redis
type: pserv
property: hostport
- key: RAILS_MASTER_KEY
sync: false
- type: worker
name: myapp-sidekiq
env: ruby
region: frankfurt # or oregon
plan: starter
buildCommand: bundle install && bundle exec rake assets:precompile
startCommand: REDIS_URL="redis://${REDIS_HOST}" bundle exec sidekiq -e production
envVars:
- key: DATABASE_URL
fromDatabase:
name: myapp-db
property: connectionString
- key: REDIS_HOST
fromService:
name: myapp-redis
type: pserv
property: hostport
- key: RAILS_MASTER_KEY
sync: false
- type: pserv
name: myapp-redis
env: docker
region: frankfurt # or oregon
repo: https://github.com/render-examples/redis.git
numInstances: 1
disk:
name: myapp-redis-data
mountPath: /var/lib/redis
sizeGB: 1
databases:
- name: myapp-db
plan: starter
region: frankfurt # or oregon
The full Render YAML specification is available here.
上記のファイルのほとんどは自明です.私はあなたのアプリケーションに固有の何かにサービス名を変更することをお勧めします.唯一のトリッキーなビットは
REDIS_URL
環境変数RailsとSideKIQサービス.管理サービスであるPostgreSQLとは異なり、REDISは一般的なプライベートサービスです.したがって、ホスト名とポートのみがレンダリングプラットフォームによって環境変数で我々に与えられます.これは、我々はredis://
独自のURLへのプロトコルディレクティブ.これを行う最も簡単な方法は
REDIS_HOST
レンダリングが与える環境変数REDIS_URL
変数startCommand
当社のサービス.この方法は、上記のRailsとSideKIQサービスで行うことができます.If you run the Rails console in the Render dashboard, you'll need to invoke it using
REDIS_URL="redis://${REDIS_HOST}" bundle exec rails console
otherwise the console process won't be able to find the Redis service.
そして最後に、私たちがしなければならないことは、このYAMLファイルをレンダリングするように接続することです.レンダリングダッシュボードに移動し、右上隅に新しいをクリックし、青写真を選択します.
画面の指示に従ってあなたのリポジトリを接続し、行くには良いはずです!
結論
私は、私のアプリで上記のアプローチを使用していますScattergun . 今まで私は本当に満足している.私は、将来のためにレンダリングチームがストアに持っているものを見ることに興奮しています、そして、個人的に、私は予見可能な将来のすべての私のプロジェクトのために彼らを利用する予定です.
更なる読書
Reference
この問題について(RailsとSideKiqを配置します.を使用してCOM), 我々は、より多くの情報をここで見つけました https://dev.to/ayushn21/deploy-rails-and-sidekiq-to-rendercom-using-yaml-346テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol