Dokku が正式にサポートしているのは、Ubuntu と Debian のみですが、実験的に (experimental) CentOS 7もサポートしています。
Dokkuを使うには、最低 1GB のメモリーが必要です。
Dokku を CentOS で使うには、Webサーバーを Nginx にする必要があります。
CentOSでは、Dokku Setup(Dokku の設定) は手動で行う必要があります。
今回も VPS として Conoha を使います。Conohaのホームページは下記です。
レンタルサーバーならConoHa|登録者数13万アカウント突破Conoha VPS の申し込みページは下記です。
VPSならConoHa|登録者数13万アカウント突破 - 期間限定キャンペーン実施中
2019年2月8日18:00までは30日間無料キャンペーンをやっています。
WEB広告限定キャンペーン| VPSならConoHaConoha はキャンペーンをよくやっています。登録前に、検索したほうが良いでしょう。
登録が終わりましたら、ログインしてコントロールパネルの左上の「サーバー追加」 をクリックします。
「!GB」を選択します。
「CentOS 7.6(64bit)」を選択して、下へスクロール
「root パスワード」(必須)と「ネームタグ」(任意)を入力する。
「root パスワード」は必ずメモしておいてください。
左下の「追加」をクリック
起動中になったら、設定したネームタグをクリック
「IPアドレス」をメモする。
以上でサーバーの作成は完了しました。右上のアカウント名をクリックして、 表示されるメニューから「ログアウト」を選択してログアウトします。
GitHub に登録済みの「公開鍵」を用意してください。 公開鍵の作り方は「 公開鍵」を参照してください。
ターミナルを起動して次のように入力してサーバーへログインします。
「xxxx.xxx.xxx.xxxx
」はサーバーのIPアドレスです。
ssh root@xxx.xxx.xxx.xxx
Are you sure you want to continue connecting (yes/no)? yes
root@xxx.xxx.xxx.xxx's password:
[root@xxx-xxx-xxx-xxx ~]#
次の手順で公開鍵をサーバーの公開鍵にペーストしてください。
次のコードでサーバーの秘密鍵を開く
vi .ssh/authorized_keys
「s
」と入力して編集モードに切り替えて公開鍵をペーストします。
「[esc
」キーを押してとコマンドモードに戻します
「:w
」エンターで保存、
「:q
」エンターで終了します。
一度ログアウトして、パスワードなしでログインできるか確かめます。
# exit
$ ssh root@xxx.xxx.xxx.
#
root の状態のままで「/etc/yum.repos.d/nginx.repo
」を作成します。
sudo vi /etc/yum.repos.d/nginx.repo
「i
」と入力して編集モードにして、次のコードをペーストします。
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
「esc
」キーでコマンドモードに戻し、
「:w
」エンターで保存して、
「:q
」エンターで終了します。
次のコマンドで Nginx をインストールします。
yum install nginx
次のコマンドで再起動時に Nginx が自動的に起動するように設定します。
systemctl enable nginx
次のコマンドで Nginx を起動します。
systemctl start nginx
ポート80 (HTTP) とポート443 (HTTPS)のアクセスを許可します。
firewall-cmd --permanent --zone=public --add-service=http
「success
」と返ってきます。
firewall-cmd --permanent --zone=public --add-service=https
「success
」と返ってきます。
firewall-cmd --reload
「success
」と返ってきます。
ブラウザで新規ウィンドウが新規タブを開き、サーバーのIPアドレスで、 ページが表示されるか確認します。
次のコードを実行します。
wget https://raw.githubusercontent.com/dokku/dokku/v0.14.5/bootstrap.sh;
sudo DOKKU_TAG=v0.14.5 bash bootstrap.sh
インストールされたか確認します。
dokku version
0.14.5
不要になったファイルを削除します。
rm bootstrap.sh
「通常ファイル 'bootstrap.sh' を削除しますか? 」と聞かれたら
「yes
」と答えます。
Dokku をインストールすると自動的に dokku ユーザーが作られます。
まずパスワードを設定します。
passwd dokku
sudo コマンドが使えるようにします。
gpasswd -a dokku wheel
dokku ユーザのホームディレクトリに移動します。
su dokku
cd
pwd
/home/dokku
「sudo
」コマンドが使えるか確認します。
「sudo
」コマンドを初めて使う時には警告文が出ますが、
気にせずパスワードを入力してください。
sudo echo "aaa"
aaa
次のコマンドで「rsa
」というファイルを作ります
(名前はなんでもかまいません)
vi rsa
「i
」と入力して編集モードにし、公開鍵をペーストしてください。
「esc
」キーを押してコマンドモードに戻し、
「:w
」エンターで保存して、「:q
」
エンターで終了してください。
次のコマンドで dokku のための特殊な公開鍵を生成します。「name
」
の部分はなんでもかまいません
sudo dokku ssh-keys:add name rsa
次のコードで dokku のドメインを設定します。「xxx.xxx.xxx
」の部分は、
サーバーのIPアドレスです。
dokku domains:add-global xxx.xxx.xxx
次のコードでアプリケーションのレポジトリを作ります。「haskell-web-app
」の部分がアプリケーションの名前です。
dokku apps:create haskell-web-app
以上でサーバーでの作業は一旦終わりです。ログアウトするには「exit
」
コマンドを使います。
$ exit
exit
# exit
ログアウト
ユーザーを何度も切り替えていた場合は、そのすべてをさかのぼって
「exit
」することになります。
「Dookuの設定で」で作成た「公開鍵」は、
Dokku でデプロイするための「公開鍵」です。
そのため、dokkuユーザーへ「ssh」でログインすることはできません。
dokku ユーザーで作業する場合は、
まず root にログインしてから dokku ユーザーへ切り替えて cd
コマンドで
dokku のホームディレクトリへ移動してください。
Haskell アプリのサーバーへのデプロイは 「Dokku デプロイ」 で説明しています。
CentOSへデプロイしたアプリをブラウザに表示するには、アプリのポートに合わせた ファイアーウォールの設定が必要です。その方法も 「Dokku デプロイ」 で説明しています。