普段の業務ではフロントエンドをやっていますが、 バックエンドは FastAPI で書かれているのでフルスタックに実装できるようになりたく、まずは完全理解することにしました。
FastAPI のチュートリアル は丁寧に解説されて非常に素晴らしいですが、環境構築に関する情報はあまり記載がないので Dev Container で動かすためにやったことを記そうと思います。
##設定ファイルを配置
以下のファイルを配置して、 コマンドパネルから Rebuild するとコンテナが起動します。
##Poetry のプロジェクト作成
無事に Docker コンテナが立ち上がったらプロジェクトのセットアップをします。
今回はライブラリのバージョン管理に Poetry を使用したため、VSCode のターミナルから実行します。
poetry init については、 poetry v1.7.1 では pyproject.toml が作られるだけなので、下記のファイルをプロジェクトルートに作るだけでも良いかもしれません。
##コンテナ起動時に依存ライブラリをインストール
無事に toml ファイルを作成できたので、コンテナ起動時にライブラリをインストールよう Dockerfile を変更しましょう。
##チュートリアル本文
ようやく環境構築が完了したので FastAPI と HTTP サーバーをインストールします。
uvicorn は devcontainer.json の postStartCommand でも、 Dockerfile の CMD でも、 docker-compose.yml の command でも好みに合わせて変えてください。
Dev Container なので、作業端末にライブラリのインストールをせずともエディアの型ヒントや補完を利用することができます。
##VSCode の Extension を整理
最低限動作するようになりましたが、型チェックやオートフォーマットが有効になっていないので、設定していきます。
Dev Container を使用する場合、 devcontainer.json を以下のように変更して Rebuild するだけで使えます。
##所感
ひとまずミニマムの環境を作ることができました。
素人が適当に作った Dockerfile なので 考慮できていない箇所がいくつかあると思いますが、目的に合わせて適宜調整の必要があります。
当初は FastAPI のチュートリアルを順番にこなしてシリーズ物の記事にしようかと思いましたが、とても詳細に掲載されているので特段解説できるところもなく、読み進める過程で試行錯誤したことがあればまた書こうと思います。