コンテナでVS Codeを起動して開発
寺田氏はこのような開発環境の違いに起因する問題を解決するツールとして、Visual Studio Codeの拡張機能である「Dev Container」を挙げた。これは、コンテナ内に構築した開発環境を使うための機能拡張だ。コンテナ内に開発環境を整備して開発チームに配布すれば、開発環境の違いに起因するトラブルに悩む必要がなくなることだ。
ここで寺田氏は、実際にDev Containerを使用したデモを披露した。ソースコードをGitHub上のレポジトリで管理しているという、チーム開発では一般的な例を想定したものだ。寺田氏は、デモに使用しているMacでVisual Studio Codeを起動し、「sw_vers」コマンドを実行してVisual Studio CodeがmacOS 13.2で動作していることを確認した。
続いて寺田氏は、Visual Studio Codeで「Dev Containers: Reopen in Container」というコマンドを実行した。Visual Studio Codeが再起動するが、再起動後に実行環境を確認してみるとLinuxで動いていることが分かる。macOSではなく、開発用コンテナでVisual Studio Codeが起動していることだ。寺田氏は、開発用コンテナで起動したVisual Studio Codeを使ってJavaのコードを編集し、GitHubにコミットする様子を披露した。
さらに寺田氏は、デモで使用しているGitHubレポジトリにはCI/CD(継続的インティグレーション/継続的デリバリー)の仕組みも組み込んであると明かした。GitHubが提供する自動化機能「GitHub Actions」を利用したものだ。
GitHub Actionsを利用するには、「.github」ディレクトリの中にある「workflows」というディレクトリに設定を記述したYAMLファイルを置く必要がある。今回のデモでは、MicrosoftのOpenJDKビルドを使用して、Mavenを実行、その後にDockerイメージをビルドして、最終的にはAzureのサーバーレス・コンテナ・サービスである「Azure Container Apps」にデプロイするように設定していた。CI/CDの作業が終わり、アプリケーションのWebサイトにアクセスしてみると、寺田氏がソース・コードに加えた変更が反映されていた。