Oryxと呼ばれるAppServiceのビルドシステムについて
Oryxとは
ソースコードレポジトリを実行可能な成果物に自動的にコンパイルするビルドシステムのことです。[1]
コードベースの内容に基づいて、package.jsonがリポジトリで検出された場合は、Oryxはnpm run buildをビルドスクリプトに含めたり、requirements.txtが検出された場合は、pip install -r requrirement.txtを含めるそうです。
内容
$ az webapp upコマンドでAppServiceにデプロイ作業を行っていました。その中でデプロイがどのような手順を踏んでされているのか気になったため、デプロイセンターのログを見ていたらOryxという文字が出てきました。
こいつはなんぞやと軽く調べてみました。
そもそもAppServiceには起動コマンドを記載しておらず、なぜデプロイしただけでAppServiceが動いているのかも分かりませんでした。
ただOryxのREADMEを読むと、どうやらソースコードを実行できる形にビルドしてくれるみたいです。
デプロイしているアプリのディレクトリ構造を必要なところだけ説明しますと、.azure, app.py, WebApp.Dockerfileが存在します。
まずは.azureの中にどこのリソースにデプロイするかを明記しています。
次にWebApp.Dockerfileにてnpm run buildしたり、pip installしたり、CMD uwsgiコマンドでapp.pyを動かしています。
WebApp.DockerfileにCMDでアプリを動かす記述がない場合は、AppServiceの起動コマンドに書けば動かせそうです。
最後に
デプロイ作業をしているときに、聞き馴染みのない言葉を調べることで、どのようにAppServiceが動くかまで簡単ではあるのですが理解することができました。
Discussion