【Railway】Flaskをデプロイする方法
Railway を使って Flaskアプリをデプロイする手順を解説します。テンプレート、GitHub、CLI、Dockerfile を使った4つの方法を網羅し、Python ウェブアプリケーションのデプロイを簡素化します。
Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)
Flaskアプリをデプロイする方法
Flask は、Web アプリケーションを構築するための Python マイクロフレームワークです。
この記事では、以下の4つの方法で Flask アプリを Railway にデプロイする手順を説明します。
- テンプレートからワンクリックでデプロイ
- GitHub リポジトリからデプロイ
- Railway CLI を使ってデプロイ
- Dockerfile を使ってデプロイ
Flask アプリの準備
既に Flask アプリがある場合は、このセクションをスキップしてください。
1. アプリの作成とローカルでの実行
# プロジェクトディレクトリを作成
mkdir flaskproject
cd flaskproject
# 仮想環境を作成して有効化
python -m venv env
source env/bin/activate
# Windows の場合: env\Scripts\activate
# Flask をインストール
pip install Flaskhelloworld.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 gunicornrequirements.txt に依存関係を保存します。
pip freeze > requirements.txtNote: このコマンドは仮想環境で実行してください。
プロジェクトのルートに nixpacks.toml ファイルを作成し、起動コマンドを指定します。
# nixpacks.toml
[start]
cmd = "gunicorn helloworld:app"これにより、Railway は Gunicorn を使ってアプリケーションを起動します。
Railway へのデプロイ
方法1: GitHub リポジトリからデプロイ
- プロジェクトの作成: Railway で新しいプロジェクトを作成し、「Deploy from GitHub repo」を選択します。
- リポジトリの選択: 自分の Flask プロジェクトのリポジトリを選びます。
- デプロイ: 「Deploy」ボタンをクリックします。Railway は自動的に Python アプリとして検出し、
requirements.txtに基づいてビルドします。 - ドメインの生成: デプロイ完了後、サービスの「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ドル分のクレジットがもらえます)