2017-10-07 11:43:26 +09:00
|
|
|
---
|
|
|
|
title: Run dokku with Dockland
|
2017-12-02 13:24:20 +09:00
|
|
|
date: 2014-05-30 09:00:00 +09:00
|
2019-08-14 21:24:00 +09:00
|
|
|
redirect_from: /blog/2014/05/30/dokku-with-dockland
|
2017-10-07 11:43:26 +09:00
|
|
|
---
|
|
|
|
|
2018-07-19 20:53:12 +09:00
|
|
|
ローカルから heroku-toolbelt ライクに dokku コマンドを叩く dockland gem をリリースした。
|
2017-10-07 11:43:26 +09:00
|
|
|
|
|
|
|
Github: [uetchy/dockland](https://github.com/uetchy/dockland)
|
|
|
|
|
|
|
|
## インストール方法
|
|
|
|
|
|
|
|
```bash
|
|
|
|
gem install dockland
|
|
|
|
```
|
|
|
|
|
|
|
|
## 使い方
|
|
|
|
|
|
|
|
### 普通のやり方
|
|
|
|
|
2018-07-19 20:53:12 +09:00
|
|
|
まずは普通に dokku コマンドを叩く。
|
2017-10-07 11:43:26 +09:00
|
|
|
|
2018-07-19 20:53:12 +09:00
|
|
|
`ssh -t dokku@example.com <command> <app-name> <options>`でリモートの dokku コマンドを直接叩ける。
|
2017-10-07 11:43:26 +09:00
|
|
|
|
|
|
|
```bash
|
|
|
|
$ ssh -t dokku@example.com config:set sushi-app KEY1=VALUE
|
|
|
|
-----> Setting config vars and restarting sushi-app
|
|
|
|
KEY1: VALUE
|
|
|
|
-----> Releasing sushi-app ...
|
|
|
|
-----> Release complete!
|
|
|
|
-----> Deploying sushi-app ...
|
|
|
|
-----> Deploy complete!
|
|
|
|
```
|
|
|
|
|
|
|
|
しかしこれではホスト名やアプリ名を毎回打ち込む羽目になって大変だ。
|
|
|
|
|
2018-07-19 20:53:12 +09:00
|
|
|
### dockland のやり方
|
2017-10-07 11:43:26 +09:00
|
|
|
|
2018-07-19 20:53:12 +09:00
|
|
|
dockland で同じことをやる。
|
2017-10-07 11:43:26 +09:00
|
|
|
|
|
|
|
```bash
|
|
|
|
$ cd sushi-app # ローカルのプロジェクトリポジトリに移動
|
|
|
|
|
|
|
|
$ git config remote.dokku.url # プッシュ先を確認しておく
|
|
|
|
dokku@example.com:sushi-app
|
|
|
|
|
|
|
|
$ dockland config:set KEY1=VALUE # 叩く時はコマンドとオプションだけ
|
|
|
|
-----> Setting config vars and restarting sushi-app
|
|
|
|
KEY1: VALUE
|
|
|
|
-----> Releasing sushi-app ...
|
|
|
|
-----> Release complete!
|
|
|
|
-----> Deploying sushi-app ...
|
|
|
|
-----> Deploy complete!
|
|
|
|
|
|
|
|
$ dockland config
|
|
|
|
=== sushi-app config vars ===
|
|
|
|
KEY1: VALUE
|
|
|
|
```
|
|
|
|
|
|
|
|
このように dockland が `git config` をパースして必要な情報を自動で収集してくれるので、コマンドがシンプルになる。
|
|
|
|
|
|
|
|
ついでに、
|
|
|
|
|
|
|
|
```bash:.zshrc
|
|
|
|
alias dokku='dockland'
|
|
|
|
```
|
|
|
|
|
2018-07-19 20:53:12 +09:00
|
|
|
という具合に alias を張っておけば、まるでリモートで`dokku`を実行している感覚でローカルから`dokku`コマンドを触ることが出来る。
|
2017-10-07 11:43:26 +09:00
|
|
|
|
|
|
|
```bash
|
|
|
|
$ cd rails-app
|
|
|
|
$ dokku logs
|
|
|
|
[2014-05-29 15:38:56] INFO WEBrick 1.3.1
|
|
|
|
[2014-05-29 15:38:56] INFO ruby 2.1.2 (2014-05-08) [x86_64-linux]
|
|
|
|
[2014-05-29 15:38:56] INFO WEBrick::HTTPServer#start: pid=10 port=5000
|
|
|
|
〜〜〜
|
|
|
|
```
|
|
|
|
|
|
|
|
## 結論
|
2018-07-19 20:53:12 +09:00
|
|
|
|
2017-10-07 11:43:26 +09:00
|
|
|
### 良い所
|
|
|
|
|
2018-07-19 20:53:12 +09:00
|
|
|
- リモートの dokku コマンドを叩きたい時はプロジェクトの Git リポジトリに入って dockland コマンドを叩くだけで良い
|
2017-10-07 11:43:26 +09:00
|
|
|
|
|
|
|
### 悪いところ
|
|
|
|
|
|
|
|
- 実装が綺麗じゃないすぎる
|