.NETでDev Containerに入門してみた【初心者向け】

こんにちは、サイオステクノロジーの佐藤 陽です。

半年間の育休から復帰後、1発目の記事になります。
ブログ書くスキルも訛ってる気がするので、またどんどん書いていきたいと思います!

育休から復帰したらチーム内でDev Containerが盛り上がっていたので、自分も乗っかってみました。

宣伝

サイオステクノロジーでDev Containerのイベントを実施します。
ぜひ是非ご参加ください!

VSCode Dev Containersで楽々開発環境構築祭り〜Python/Reactなどなど〜

はじめに

基本的には、チームメンバーが書いたブログをそのままなぞった体験記になります。
せっかくなのでメンバーがやっていない.NET環境でやってみます。

入門編にはなりますが、よければ最後までご覧ください

参考にした記事はこちら。

導入がカンタンで開発効率爆上げなVisual Studio Code拡張機能のご紹介

Nest.js『だけ』をdevcontainerで構築する:ゼロから始める環境構築

DevContainerでサクッと使える実行環境を用意しよう:Pythonを例に紹介

準備

準備したものは以下のものです。

Ubuntu 20.04 WSL2上に構築
Docker 26.0.0 こちらを参考にインストール
メンバーのブログではDockerDesktopを使ってましたが
本記事では自分でEngineをインストールしていきます
Visual Studio Code
Remote Developmentエクステンション https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpac

Dev Containerを使ってみる

さっそくやっていきます。
まずはUbuntuからDockerをスタートさせておきます。

sudo service docker start

その後、VSCodeの[><(リモートウィンドウを開きます)]のマークから、[新しい開発コンテナー]を選択します。

するとテンプレートの選択が可能となるため、今回は「C#(.NET) and MS SQL」を選択します。

ここで、「その他のオプション」を選択します。

ここでは作成する環境の.NETのバージョンを指定することができます。

規定では8.0 – bookwormとなっていますが今回は、6.0 – bookwormに変更しました。
ローカルを汚さず、バージョン違いの環境をサクッと作成できるのは嬉しいですね。

追加する機能はないので、このままパスします。

するとコンテナの作成が始まります。
しばらくするとdotnet-mssqlという名前のコンテナが作成されました。

ディレクトリ構成としては以下のような形となっています。

ファイルの中身に関しては武井さんのブログなどでも紹介されているので割愛します。

導入がカンタンで開発効率爆上げなVisual Studio Code拡張機能のご紹介

また、この時.NETのバージョンも確認してみると
6.0のバージョンがインストールされていることも確認できました。

アプリを実行してみる

せっかくなのでこの環境でアプリを実行してみたいと思います。

dotnetコマンドを使って新規にプロジェクトを作成します。

dotnet new mvc -o devconmvc

実行します。
(管理者実行しないと権限不足でエラーが発生したので、取り急ぎsudoつけて対応しました。)

sudo dotnet run --project devconmvc.csproj

アクセスするとサンプルのアプリが起動していることが確認できました。
正しく環境が構築されてることがわかりますね。

MSSQLに接続してみる

今回作成したテンプレートが.NET+MSSQLのものだったので
せっかくなのでMSSQLにも接続してみます。

VSCodeの機能を使って接続します。
devcontainer.jsonに接続情報が書かれているので、これを使ってみます。

無事接続できることを確認できました。

これでアプリからでも問題なく接続できそうですね。

まとめ

Dev Containerのテンプレートを利用してさくっと.NET環境を構築してみました。

今回はテンプレートをもとに新規作成しただけですが、
devcontainer.jsonやcomposeファイル、Dockerfileなどを自分たちの環境に合わせてカスタマイズしていくことで、より実務で重宝する機能になっていくのだろうなと思います。

今回は入門しただけなので、またどんどん使ってみて記事にしていきたいと思います。
ではまた!

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です