Railway/Guides
Flask アプリをデプロイする
Railway を使って Flask アプリをデプロイする手順を解説します。テンプレート、GitHub、CLI、Dockerfile を使った4つの方法を網羅し、Python ウェブアプリケーションのデプロイを簡素化します。
著者: AIイノベーションズ 阿部隼也(X / Twitter)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 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 リポジトリからデプロイ
- プロジェクトの作成: 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 を使ってビルドとデプロイを行います。
PR