startコマンド
startコマンドはアプリケーションの起動に必要なコマンドです。Nixpack、Buildpack、Dockerfileのいずれを使用し作成したアプリケーションであっても、必ず必要になります。startコマンドはアプリケーションの言語によって異なる場合があります。以下に一般的なプログラミング言語の例をご紹介します。
Nixpackのstartコマンド
アプリケーションをNixpackを用いて作成すると、アプリケーションのリポジトリの内容に基づいてstartコマンドが推測されます。または、アプリケーションを追加するときに「リソース」のステップで「startコマンド」を指定することもできます。
Buildpackのstartコマンド
アプリケーションをBuildpackを用いて作成すると、アプリケーションのリポジトリの内容に基づいてstartコマンドが推測されます。または、アプリケーションを追加するときに「リソース」のステップで「startコマンド」を指定することもできます。
Dockerfileのstartコマンド
アプリケーションでDockerfileを使用してコンテナイメージをセットアップした場合、コンテナを実行するにはDockerfileでENTRYPOINTまたはCMD命令を指定する必要があります。アプリケーションの命令を指定する方法について詳しくは、DockerfileリファレンスまたはDockerfileの記述に関するベストプラクティスをご覧ください。
コマンドの連結
複数のstartコマンドを追加するには、&&
を使用することができます。その結果、例えば以下のような記述になります。
command one && command two
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内のアプリケーションにあるプロセスを編集する必要があります。
pnpm with a Dockerfile
Dockerファイルでpnpmを使用する場合は、PNPM_HOME
に以下の場所を使用します。
ENV PNPM_HOME="~/.pnpm"
Ruby
Ruby on Rails
rails server
Ruby on RailsとDockerfile
最初にアプリケーションを作成すると、Kinstaのシステムにより、ENTRYPOINT
命令からプロセスが作成されます。
ENTRYPOINT ["entrypoint.sh"]
リポジトリでこの命令を変更しても、プロセスはデフォルトでは変更されません。そのため、MyKinsta内のアプリケーションにあるプロセスを編集する必要があります。
Java
アプリケーションをデプロイすると、リポジトリルートにあるProcfileに基づいてプロセスが自動的に作成されます。
Scala
target/universal/stage/bin/ -Dhttp.port=$PORT