startコマンドはアプリケーションの起動に必要なコマンドです。NixpackBuildpackDockerfileのいずれを使用し作成したアプリケーションであっても、必ず必要になります。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コマンド」を変更することができます。その後、変更後の「startコマンド」を使ってアプリケーションが自動でデプロイされます。

startコマンドの言語別の例

Python

  • Pythonpython3 main.py
  • Djangogunicorn .wsgi

Go

Gobin/<repo name>

PHP

  • PHPheroku-php-apache2
  • Laravel
    • heroku-php-apache2 /public
    • php artisan serve --host 0.0.0.0 --port 8080
  • Statamicheroku-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

Scalatarget/universal/stage/bin/ -Dhttp.port=$PORT

関連ドキュメント