AIイノベーションズ ブログ

【Railway】Flaskをデプロイする方法

最終更新日:
阿部隼也
阿部 隼也
AIイノベーションズ 代表取締役社長 | x.com/ai_abe_shunya
リアルタイムアンケートツール: LiveQ

お悩み相談AIチャット: AI相談.com

Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)

Flaskアプリをデプロイする方法

Flask は、Web アプリケーションを構築するための Python マイクロフレームワークです。

この記事では、以下の4つの方法で Flask アプリを Railway にデプロイする手順を説明します。

  1. テンプレートからワンクリックでデプロイ
  2. GitHub リポジトリからデプロイ
  3. Railway CLI を使ってデプロイ
  4. Dockerfile を使ってデプロイ

Flask アプリの準備

既に Flask アプリがある場合は、このセクションをスキップしてください。

1. アプリの作成とローカルでの実行

# プロジェクトディレクトリを作成
mkdir flaskproject
cd flaskproject
 
# 仮想環境を作成して有効化
python -m venv env
source env/bin/activate
# Windows の場合: env\Scripts\activate
 
# Flask をインストール
pip install Flask

helloworld.py というファイルを作成し、以下のコードを追加します。

import os
from flask import Flask
 
app = Flask(__name__)
 
@app.route('/')
def hello():
    return 'Hello world, welcome to Railway!'

以下のコマンドでローカル開発サーバーを起動します。

flask --app helloworld run

ブラウザで http://127.0.0.1:5000 にアクセスし、動作を確認します。

2. デプロイの準備

本番環境用の Web サーバーとして Gunicorn をインストールします。

pip install gunicorn

requirements.txt に依存関係を保存します。

pip freeze > requirements.txt
Note: このコマンドは仮想環境で実行してください。

プロジェクトのルートに nixpacks.toml ファイルを作成し、起動コマンドを指定します。

# nixpacks.toml
 
[start]
cmd = "gunicorn helloworld:app"

これにより、Railway は Gunicorn を使ってアプリケーションを起動します。


Railway へのデプロイ

方法1: GitHub リポジトリからデプロイ

  1. プロジェクトの作成: Railway で新しいプロジェクトを作成し、「Deploy from GitHub repo」を選択します。
  2. リポジトリの選択: 自分の Flask プロジェクトのリポジトリを選びます。
  3. デプロイ: 「Deploy」ボタンをクリックします。Railway は自動的に Python アプリとして検出し、requirements.txt に基づいてビルドします。
  4. ドメインの生成: デプロイ完了後、サービスの「Settings」→「Networking」で「Generate Domain」をクリックして公開 URL を取得します。

方法2: Dockerfile を使う

プロジェクトのルートに以下の内容で Dockerfile を作成します。

# Python 3 の公式イメージを使用
FROM python:3
 
# バッファリングを無効化
ENV PYTHONUNBUFFERED=1
 
# アプリケーションディレクトリを作成
WORKDIR /app
 
# ローカルのコードをコンテナにコピー
COPY . ./
 
# 依存関係をインストール
RUN pip install --no-cache-dir -r requirements.txt
 
# コンテナ起動時にウェブサービスを実行
CMD ["gunicorn", "helloworld:app"]

この Dockerfile を含むリポジトリをデプロイすると、Railway は自動的に Dockerfile を使ってビルドとデプロイを行います。

Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)

リアルタイムアンケートツール: LiveQ

お悩み相談AIチャット: AI相談.com