AIイノベーションズ
Railway/Guides

Flask アプリをデプロイする

Railway を使って Flask アプリをデプロイする手順を解説します。テンプレート、GitHub、CLI、Dockerfile を使った4つの方法を網羅し、Python ウェブアプリケーションのデプロイを簡素化します。

著者: AIイノベーションズ 阿部隼也X / Twitter

Railwayはこちら

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はこちら

PR