LoginSignup
3
4

More than 5 years have passed since last update.

ニフティクラウド上で dokku を少し試したメモ

Last updated at Posted at 2017-01-19

ニフティクラウド上のスタンダードイメージ Ubuntu 14.04 から作ったサーバーで dokku (セルフホストできるミニ heroku みたいなやつ) を少し試したメモ。

インストール

Getting Started with Dokku を参考にしながら。基本的にはこの 2 行で済む。

# wget https://raw.githubusercontent.com/dokku/dokku/v0.8.0/bootstrap.sh
# sudo DOKKU_TAG=v0.8.0 bash bootstrap.sh

が、なぜか名前解決できないエラーがでたので、DNS の設定を Google のやつに変更したらうまく行った。

# cp /etc/resolv.conf{,.org}
# sudo echo nameserver 8.8.8.8 > /etc/resolv.conf

インストールスクリプトが完了すると、docker が使えるようになっていて、

# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

http://${サーバーのグローバルIP}:80 で初期設定を行うことができるようになっている。
が、ufw が有効になっていてそのままだとアクセスできないので、無効化しておく。

# ufw disable
Firewall stopped and disabled on system startup

これで設定画面にアクセスできるようになった。

Public Key にはデフォルトで root の公開鍵が入力されているので、git push のときにもこのサーバーにログインした秘密鍵を使いたい場合にはそのままでよい。git push のときにちがうキーを使いたい場合には書き換える必要がある。

(ちなみに Adding SSH Keys にあるように公開鍵はあとから dokku ssh-keys:add KEY_NAME path/to/id_rsa.pub というコマンドで追加することもできる。といっても /root/.ssh/authorized_keys に公開鍵の中身が追記されるだけだけど。)

Hostname にはサーバーの IP アドレスが表示されているので、とりあえずそのままにした。IP にドメインを振っている場合にはドメイン名を入力すればいいと思う。

Finish Setup ボタンをクリックすると Deploying to Dokku にリダイレクトされた。

アプリをデプロイしてみる

Deploying to Dokku を見ながらアプリをデプロイしてみる。

まず、dokku をインストールしたサーバー上での作業。アプリの作成。

# dokku apps:create ruby-rails-sample
Creating ruby-rails-sample... done
# dokku apps
=====> My Apps
ruby-rails-sample

postgres プラグインのインストール。

# sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git
(略)

データベースの作成。

# dokku postgres:create rails-database
       Waiting for container to be ready
       Creating container database
       Securing connection to database
=====> Postgres container created: rails-database
=====> Container Information
       Config dir:          /var/lib/dokku/services/postgres/rails-database/config
       Data dir:            /var/lib/dokku/services/postgres/rails-database/data
       Dsn:                 postgres://postgres:bb8bcc55f2e195f7bfcc3c8c3cc9688a@dokku-postgres-rails-database:5432/rails_database
       Exposed ports:       -                        
       Id:                  c3f315cc999ce770422ae664ba905c88d7377f8233c76d0449a22a800a4c63f2
       Internal ip:         172.17.0.2               
       Links:               -                        
       Service root:        /var/lib/dokku/services/postgres/rails-database
       Status:              running                  
       Version:             postgres:9.6.1

アプリとデータベースを link しておく。

# dokku postgres:link rails-database ruby-rails-sample

次に、手元の PC 側での作業。サンプルアプリを clone する。

$ git clone https://github.com/heroku/ruby-rails-sample.git
Cloning into 'ruby-rails-sample'...
remote: Counting objects: 239, done.
e: Total 239 (delta 0), reused 0 (delta 0), pack-reused 239
Receiving objects: 100% (239/239), 42.78 KiB | 0 bytes/s, done.
Resolving deltas: 100% (86/86), done.
Checking connectivity... done.

dokku のリポジトリを remote に登録して、アプリを push する。

$ cd ruby-rails-sample/
$ git remote add dokku dokku@${サーバーの IP アドレス}:ruby-rails-sample
$ git push dokku master
(heroku と同じようなログがずらずら表示されて、)
-----> Attempting to run scripts.dokku.postdeploy from app.json (if defined)        
=====> Application deployed:        
       http://${サーバーの IP アドレス}:5307

To dokku@${サーバーの IP アドレス}:ruby-rails-sample
 * [new branch]      master -> master

ブラウザで http://${サーバーの IP アドレス}:5307 にアクセスすると、下記が正常に表示された。

まとめ

ニフティクラウド上で dokku をインストールしてアプリをデプロイしてみたりすることができた。

簡単にインストールできるのはいいけど、API がなくて dokku をインストールしたサーバーの中でないとアプリの作成等、各種管理操作ができないのが微妙な感じ…。

次は API もあるっぽい Deis や Flynn を試してみよう。

参考資料

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4