
目次
RailWayとは?

アプリケーションのデプロイプラットフォームです。
FastAPIで作成したデプロイをするときに使用したのですが、エラーが出たので解決方法をメモしておきます。
Githubで連携するだけではうまくいかず、Railwayで使用できるpythonのバージョン指定が必要だったようです。
セッティングについて
最終的にURL以外は、ほぼ設定していません。
代わりにrailway.jsonを設定しています。




railway.json
railwayでデプロイ時に用いる設定値をまとめた設定ファイルです。
配置場所は、プロジェクトのroot直下です。
APIのメインソースはmain.pyに書いています。

railway.json の記載内容
{ "$schema": "https://railway.app/railway.schema.json", "build": { "builder": "NIXPACKS" }, "deploy": { "startCommand": "uvicorn main:app --host 0.0.0.0 --port $PORT", "restartPolicyType": "ON_FAILURE", "restartPolicyMaxRetries": 10 } }
$PORT が文字列として認識されるエラーが発生
pyproject.toml と .python-versionでpythonのバージョンを指定すると解決しました。
pyproject.toml
[tool.poetry.dependencies] python = "^3.10" fastapi = "^0.80.0" uvicorn = "^0.18.3" [tool.poetry.dev-dependencies] [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api"
.python-version
3.10.7