dokkuにアプリケーションをデプロイすると、デフォルトのプロセスタイプが web
になります(出典:http://dokku.viewdocs.io/dokku~v0.12.10/deployment/process-management/#process-and-container-management)
プロセスタイプが web
の場合、 アプリケーションのコンテナにnginxを介したプロキシと外部ポートへのバインディングが行われます。
プロキシする必要がない場合、以下のどちらかの操作を行います(例えば単なるワーカーを動かしたいとき)。
- リポジトリのルートディレクトリに
DOKKU_SCALE
ファイルを置く -
ps:scale <app> web=0 worker=1
を実行し、webプロセスを無効化する
ここではDOKKU_SCALEファイルを置く場合について説明します。
DOKKU_SCALEファイルを置く場合
Procfileが以下のようになっていると仮定します。
worker: python main.py
同じくリポジトリのルートディレクトリに以下のような DOKKU_SCALE
を置きます。
web=0
worker=1
tick=1
具体的なユースケース
僕は以下のような場合に、 web
プロセスタイプを使っていません。
- Slackなどの定期的な通知
- 情報収集するためのクローラー
おわり
ウェブアプリケーションをリリースするために便利な dokku ですが単なる定期実行するようなワーカーをリリースするときにもとても便利です。