fbpx

Over 10 years we help companies reach their financial and branding goals. Engitech is a values-driven technology agency dedicated.

Gallery

Contacts

411 University St, Seattle, USA

engitech@oceanthemes.net

+1 -800-456-478-23

テクノロジー

RailsアプリケーションをDokkuサーバーにデプロイする

イントロダクション

レールアプリケーションをデプロイする方法はたくさんあり、多くのプラットフォームやツールがこれを支援しています。そのうちの1つは、Dokkuがインストールされたサーバーにレールアプリケーションをデプロイすることです。この記事では、Dokkuの簡単な概要と、Dokkuがインストールされたサーバーにレールアプリケーションを簡単にデプロイする方法を紹介します。

Dokkuとは何ですか?

Dokkuを数言で説明すると、HerokuのオープンソースのPlatform as a Service(PaaS)の代替として説明できます。 Dokkuは、さまざまなハードウェアおよび安価なサーバーにデプロイするためにDockerの力を活用します。サーバーを完全に制御し、Herokuのような機能を楽しむことができます。さらに、Dokkuはさまざまなアプリケーションをデプロイするのを助けるプラグインをサポートしています

Railsアプリケーションをデプロイする

レールアプリケーションをDokkuサーバーにデプロイするプロセスは非常に簡単です。最初に、アプリケーションを管理およびデプロイするコマンドラインインターフェイスであるDokku CLIをインストールする必要があります。インストールしたら、CLIを使用して、Dokkuアプリを作成し、そのアプリにコードをプッシュすることでアプリケーションをデプロイできます。ステップバイステップで行きましょう。

1. システム要求

次のリストに従って新しいオペレーティングシステムがインストールされます。

サーバーには次のアーキテクチャの1つがあります:

  • AMD64(x86_64としても知られています)は、Intelクラウドサーバーで一般的に使用されています。
  • ARMV7(armhfとしても知られています)は、Raspberry PIで一般的に使用されています。
  • ARMV8(arm64としても知られています)は、Raspberry PIとAWS Gravitonで一般的に使用されています。

サーバー負荷を避け、使用中の予期しないエラーを回避するために:

cd /var
touch swap.img
chmod 600 swap.img

dd if=/dev/zero of=/var/swap.img bs=1024k count=1000
mkswap /var/swap.img
swapon /var/swap.img
free

echo "/var/swap.img    none    swap    sw    0    0" >> /etc/fstab

最後に、ドメイン名、これは必須ではありません。しかし、ドメイン名を使用すると、IPアドレスよりもアプリケーションへのアクセスが容易になります。

2. サーバー上にDokkuをインストールする

Dokkuをブートストラップファイルを使用してインストールします。

wget https://dokku.com/install/v0.29.4/bootstrap.sh #0.29.4 là phiên bản cài đặt
sudo DOKKU_TAG=v0.29.4 bash bootstrap.sh 

SSHキーと仮想ホストの設定

# 通常、キーは現在のユーザーの~/.ssh/authorized_keysファイルに既に利用可能です
cat ~/.ssh/authorized_keys | dokku ssh-keys:add admin

# あなたがアクセスできるすべてのドメインを使用することができます
# このドメインは、サーバーのIPに向けられたAレコードまたはCNAMEを持つ必要があります
dokku domains:set-global dokku.me

# また、サーバーのIPも使用することができます
dokku domains:set-global 10.0.0.2

3. Railsアプリケーションを展開する

サーバー上のDokkuを設定した後、次のステップに従って基本的なRailsアプリケーションをデプロイします:

この例では、デプロイするためにHeroku Ruby on Rails “Getting Started” appリポジトリを使用します。

サーバーにGitリポジトリからソースコードをクローンします。

# ローカルマシンから
# このホストでのGitHubへのSSHアクセスが有効になっている必要があります
git clone https://github.com/heroku/ruby-getting-started

Dokku上でアプリケーションを作成します。

# Dokkuホスト上で
dokku apps:create ruby-getting-started

Dokkuはデフォルトでは、プリインストールされたデータベースを提供しませんので、プラグインを介してインストールする必要があります。Dokkuのホームページから利用可能なプラグインのリストにアクセスできます。ここではPostgresを使用するので、Dokkuが提供するPostgresプラグインをインストールします。

# Dokkuホスト上で
# postgresプラグインをインストールします
# プラグインのインストールにはrootが必要であり、ユーザーの変更が必要です
sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git

新しいデータベースを作成します。

# 名前がrailsdatabaseのpostgresサービスを作成します
dokku postgres:create railsdatabase

前に作成したアプリケーションを新しく作成したデータベースとリンクする。

Dokkuは、Dokkuアプリケーション上に環境変数DATABASE_URLを作成します。

# Dokkuホスト上で
# 各公式データストアは、サービスをアプリケーションにリンクするためのlinkメソッドを提供します
dokku postgres:link railsdatabase ruby-getting-started

ruby-getting-startedアプリをDokkuサーバーにデプロイする。すべて必要なことはgitにリモートを追加してソースコードをDokku gitリポジトリにプッシュすることです。

# ローカルマシンから
# リモートユーザー名は 必ず dokkuである必要があります。そうでないとプッシュは失敗します
cd ruby-getting-started
git remote add dokku dokku@dokku.me:ruby-getting-started
git push dokku main:master

git push dokku main:master コマンドを実行した後、以下のような出力が得られます。

Counting objects: 231, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (162/162), done.
Writing objects: 100% (231/231), 36.96 KiB | 0 bytes/s, done.
Total 231 (delta 93), reused 147 (delta 53)
-----> Cleaning up...
-----> Building ruby-getting-started from herokuish...
-----> Adding BUILD_ENV to build environment...
-----> Ruby app detected
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-2.2.1
-----> Installing dependencies using 1.9.7
       Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
       Fetching gem metadata from https://rubygems.org/...........
       Fetching version metadata from https://rubygems.org/...
       Fetching dependency metadata from https://rubygems.org/..
       Using rake 10.4.2

...

=====> Application deployed:
       http://ruby-getting-started.dokku.me

まとめ

Dokkuを使ってRailsアプリケーションをインストールすると、アプリケーションをすばやく簡単にデプロイできます。 数回の簡単なコマンドを実行するだけで、あなた自身のアプリケーションがすぐに実行されます。 上記の簡単なコマンドに加えて、Dokkuは、Dokkuによって提供されるプラグインとコミュニティによってDokkuをより柔軟で拡張可能にするようになった、高度な構成でさらに多くのことを行うことができます。

Dokkuには利点がありますが、残念ながら欠点もありますが、それを気に入って、Dokkuに関連する今後の記事を楽しみにしています。

Avatar photo

Author

Dominic Bui

Leave a comment

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