startコマンド
startコマンドはアプリケーションの起動に必要なコマンドです。Nixpack、Buildpack、Dockerfileのいずれを使用し作成したアプリケーションであっても、必ず必要になります。startコマンドはアプリケーションの言語によって異なる場合があります。以下に一般的なプログラミング言語の例をご紹介します。
Nixpackのstartコマンド
アプリケーションをNixpackを用いて作成すると、アプリケーションのリポジトリの内容に基づいてstartコマンドが推測されます。または、アプリケーションを追加するときに「リソース」のステップで「startコマンド」を指定することもできます。
Buildpackのstartコマンド
アプリケーションをBuildpackを用いて作成すると、アプリケーションのリポジトリの内容に基づいてstartコマンドが推測されます。
Dockerfileのstartコマンド
アプリケーションでDockerfileを使用してコンテナイメージをセットアップした場合、コンテナを実行するにはDockerfileでENTRYPOINTまたはCMD命令を指定する必要があります。アプリケーションの命令を指定する方法について詳しくは、DockerfileリファレンスまたはDockerfileの記述に関するベストプラクティスをご覧ください。
コマンドの連結
複数のstartコマンドを追加するには、&&
を使用することができます。その結果、例えば以下のような記述になります。
command one && command two
startコマンドの表示
Startコマンドは、MyKinstaの複数箇所で確認できます。
- 「プロセス」>「ランタイムプロセス」>「ウェブプロセス」
- または「デプロイメント」>「履歴」から選択して詳細情報を表示し「デプロイメントの進捗」で「ロールアウトプロセス」をクリック
startコマンドの編集
「プロセス」>「ランタイムプロセス」に移動し、「ウェブプロセス」を 編集して「startコマンド」を変更することができます。その後、変更後の「startコマンド」を使ってアプリケーションが自動でデプロイされます。
startコマンドの言語別の例
Python
Python:
python3 main.py
Django:
gunicorn .wsgi
Go
bin/<repo name>
PHP
PHP:
heroku-php-apache2
Laravel:
heroku-php-apache2 /public
php artisan serve -- host 0.0.0.0 --port 8080
Statamic:
heroku-php-apache2 public/
Node.js
Node.js
npm start
他のコマンドを使用するには、MyKinstaのウェブプロセスを編集する必要があります。
"scripts": {
"start": "node server.js"
},
Node.jsとDockerfile
アプリを作成すると、KinstaのシステムによりCMD
命令に基づいてプロセスが作成されます。
CMD ["npm", "run", "start"]
リポジトリでこの命令を変更しても、プロセスはデフォルトでは変更されません。そのため、MyKinsta内のアプリケーションにあるプロセスを編集する必要があります。
Ruby
Ruby on Rails
rails server
Ruby on RailsとDockerfile
最初にアプリケーションを作成すると、Kinstaのシステムにより、ENTRYPOINT
命令からプロセスが作成されます。
ENTRYPOINT ["entrypoint.sh"]
リポジトリでこの命令を変更しても、プロセスはデフォルトでは変更されません。そのため、MyKinsta内のアプリケーションにあるプロセスを編集する必要があります。
Java
Java:アプリケーションをデプロイすると、Kinstaのシステムにより、リポジトリルートにあるProcfileに基づいてプロセスが自動で作成されます。
Scala
target/universal/stage/bin/ -Dhttp.port=$PORT