概要
従来、C#/.NET 開発では Visual Studio にランタイムがバンドルされていたため、Docker をランタイムとして活用するケースは限定的でした。
.NET 自体としては Aspire を活用することで、Docker 上に統一された開発環境を構築し、チーム全体で環境差異をなくすことが可能になります。
ただしその場合も Aspire 自体はローカルに構築することが多いです。
そのため今回はランタイム自体も Docker に構築して C#アプリケーションを構築する方法を調査しました。
このアプローチにより、新しいチームメンバーが参加した際に、Docker をインストールするだけで開発環境を整えられます。
メリット
- 環境の統一: ランタイムのバージョンを厳密に統一できる
- セットアップの簡素化: 複雑なセットアップ手順が不要
実装手順
1. Dev Container の追加
VSCode の拡張機能を使用して、Dev Container を追加します。
- コマンドパレットを開く(
Ctrl+Shift+P) -
devと入力して候補を表示 -
.NETを選択していき、Docker コンテナ構成を自動生成
生成後、Compose ファイルを GUI 上から確認・編集できます。
2. コンテナの接続と操作
リモート接続
- 生成された Dev Container へはリモート接続で対応します
- コンテナ内でアプリの開発を進めます
- コンテナ内ではランタイムのコマンドが使用可能です。
3. アプリの構築
プロジェクト自体は通常の方法で作成できます。
dotnet new console -n MyApp
まとめ
更に Aspire を用いて DB などをコンテナ化する場合には Docker in Docker か Docker outside of Docker をする必要がありテクニックが必要です。別の機会に記事にしようと思います。
この記事が皆様のコーディングライフの助けになれば幸いです。
参考