> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ale.run/llms.txt
> Use this file to discover all available pages before exploring further.

# Flask

> Python言語で作成されたFlaskアプリケーションのデプロイガイドです。

***

## 事前準備と確認事項

<AccordionGroup>
  <Accordion title="対応Pythonバージョン" defaultOpen={true}>
    * Flaskは**最低でもPython 3.7以上**が必要です。
  </Accordion>
</AccordionGroup>

<Warning>
  プロジェクト設定ファイル（requirements.txt など）に記載されたPythonバージョンとデプロイ設定時に選択したバージョンが一致しない場合、ビルドやランタイムエラーが発生する可能性があります。
</Warning>

## テンプレートとリポジトリの選択

<Frame>
  <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/django_02.png" />
</Frame>

> ダッシュボードの <Icon icon="circle-plus" iconType="solid" size={15} color="2396F1" /> または `⌘ + K` で生成されるデプロイモーダルで **Python** テンプレートを選択し、続くドロップダウンメニューから連携されたGitHubアカウントのリポジトリを選択するか、[Git URLタブでGitリポジトリURLを入力してください。](/ja/developers/private-repo)

## デプロイ設定値を入力

> 次の各項目にサービスをデプロイするための設定値を入力してください。

<AccordionGroup>
  <Accordion title="基本項目">
    * **バージョン**
    * [環境変数](/ja/developers/env)
    * **ポート番号**: `5000`（デフォルト値）
    * **Start Command**: `gunicorn -b 0.0.0.0:5000 app:app`（デフォルト値）
    * [Health Check](/ja/developers/zero-downtime-deployment): コンテナの状態を検証するエンドポイント

    <Info>
      Start Commandでコマンドを入力する際、gunicornの実行引数は以下を参考にソースに合わせて修正してください。

      ```bash theme={null}
      gunicorn -b 0.0.0.0:5000 [Flaskをインポートしてアプリケーションを実行するファイル名]:app
      [例]
      ale.py でFlaskをインポートしてアプリケーションを実行する場合
      gunicorn -b 0.0.0.0:5000 ale:app
      ```
    </Info>
  </Accordion>

  <Accordion title="詳細オプション">
    * **Build Variables**: コンテナイメージビルド時に含めるべき変数
    * **Embedded node.js**: プロジェクト内でビルドが必要な Node.js バージョン
    * **Install command**: Python パッケージインストールコマンド
    * **Pre start Command**: Start Command 実行前に実行される事前コマンド
    * **Update strategy**
      * **Rolling Update** : 新バージョンデプロイ後、既存ポッド終了。可用リソース確保必要
      * **Recreate** : 既存ポッドを終了後、新バージョンを作成・起動。ダウンタイム発生
  </Accordion>
</AccordionGroup>

## リソース設定とデプロイ

<Frame>
  <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/08_04.png" />
</Frame>

* **リソースタイプ** : [オンデマンドとスポットリソース](/ja/developers/resource#on-demand-spot) から選択

* **CPU**：サービスで利用可能なvCPUの上限を設定。最小構成時は0.1 vCPUを割り当て

* **メモリ** : サービスが使用するメモリリソースの最大値を設定

* [レプリカ](/ja/developers/replica)：設定した数に応じサービスを水平スケーリングし、負荷分散と可用性確保

* **デプロイ** : `デプロイ`をクリック

<Info>
  デプロイが完了したらプレビュードメインを通じてブラウザでウェブページを確認したり、APIツールを使用してリクエストを送信できます。
</Info>

<Tip>
  リソース制限によりデプロイできない場合は、[スペースとリソースの管理ページ](/ja/operations/spaces#%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AE%E4%BB%98%E4%B8%8E)を参照してスペースにリソースを追加してください。
</Tip>

***

[Flask Docs](https://flask.palletsprojects.com/en/2.3.x/)
