富士通クラウドダイレクトブログ

初心者エンジニア向けTechBlog

富士通クラウドダイレクトブログ

初心者エンジニア向けTechBlog

【レポート】VS CodeのDev Containersを活用して開発を効率化しよう

こんにちは。 ニフクラエンジニアミートアップ事務局の鮫島です。

2024年2月14日(水)に第69回ニフクラエンジニアミートアップを開催しました。

fujitsufjct.connpass.com

当初は、『VS Codeを活用してチーム開発を成功に導くには』というテーマで募集していましたが、講師の戸倉彩氏が体調不良のため急遽テーマを変更して、LT枠で登壇予定であった日本仮想化技術の石本達也氏に、VS Codeを活用した開発環境の構築について語っていただきました。

VS Codeの拡張機能「Dev Containers」

VS Code(正式にはVisual Studio Code)は、Microsoft社の提供するオープンソースのソースコードエディターですが、豊富な拡張機能や他のツールとの連携が出来るのが特徴です。

VS Codeの拡張機能

その豊富な拡張機能の一つである「Dev Containers(デブ・コンテイナーと発音しよう)」を活用した開発環境構築の効率化が、今回のテーマになります。

石本氏のお話では「開発環境」の定義を「個人が手元でプログラミングをするような環境」としていました。 つまり、ローカルのPCや、クラウドサービスの仮想マシンや会社のサーバーを利用したり…ということですね。

クラウドや仮想環境が主流でなかった頃は、ローカルのセカンドPCや会社のお古のサーバーを開発環境として利用することが多かったが、現在では「Docker」などの「コンテナ技術」を使うことが一般的になってきました。

ローカル環境だけだと、それこそ自分しか分からない・やった本人も記憶が曖昧な環境が積み重なって収拾がつかなくなりますが、コンテナ化すると、かなり「お片付け」がしやすくなって、次に使うときも「すぐに取り出せる」ので非常に便利です。

ただのアプリのプロジェクトファイルすら管理出来ない人が多数と思います…

手軽なコンテナ環境構築手段として

とはいえ、コンテナは敷居が高い…という人も多いのも事実。 そこで、今回はVS Codeでコンテナ環境を手軽に使える方法があるよ!ということで前述の「Dev Container」という拡張機能によってDockerコンテナ上に開発環境を構築することが出来ます。

一般に「コンテナ」の特徴とされる部分は共通っぽい

「Dev Container」を使うと、ローカルでもリモート環境でもどちらでもわりと簡単にコンテナ環境を構築できるという点も大きなメリットのようです。

デメリットもありますが、マシンスペックとかはVMなら避けられない部分ですし、カスタマイズの余地が少ない点などはむしろ余計なことが出来ない方が初心者にはやさしいのかもしれません。

Dev Containerの起動

インストールは簡単

実際のインストール・設定は、動画を見ていただいた方が良いのですが、メニューに従って項目を選択していけば先に進める(起動する)ようになっています。

ポチポチと選んでいけば何とかなります。
container ポチポチ選択してコンテナを立ち上げると「devcontaoner.json」という設定ファイルが生成されるので、後から設定項目を確認することもできます。

jsonファイルの中身はこんな感じ

この設定項目を変更すれば、多少のカスタマイズもできます。 18行目の「customizations」を変更することで、絶対インストールすべき拡張機能があれば入れておけばいいです。

設定ファイルはVS Code本体に寄せる

VS Codeそのものの設定も「settings.json」を記述することで定義できるのですが、VS Codeの設定は「あちこちで変更できてしまう」ため、VS Code本体の設定ファイル「.vscode/settings.json」に寄せておいたほうが間違いがないとのこと。

あちこちにある設定ファイルのスコープはこんな感じ

・・・と、あっさりコンテナの開発環境が出来てしまいました。

実際使ってみた人のご意見等は、その後のQAセッションで熱い議論が交わされることになります。

Dev Conrainersを立ち上げるところまでの動画は下記をご覧ください。 youtu.be

QAセッション

QAセッションですが、最初から難易度高めの質問が飛び込んできます。

Dev Containersメンテされてない問題

メンテされていないDev Containersで苦労した経験者からの質問

ざっくりまとめると、こういう内容でしょうか。

Dev Containersで、本番環境を動かすためにtestを行うと上手くいかないことがある。メンテナンスされていない?皆さんどうしているんですか?

これに対し、さまざまなコメントがありました。

 ・メンテされていない状況=DevOps的にどうなの?
 ・本番環境をビルドするまでの用途には向かない?
 ・VS Codeを使わずにDockerファイルを作ったほうが良いケースも

「Dev Containers」は、短期的に教育・研修用途などで開発環境を提供するケースではあまり問題は生じないが、もう少し中長期で開発環境として利用する場合、開発環境を用意する側がメンテナンスを怠ると、影響が出る場合がある…。他の環境でも有り得る話と思いますが、仕様的に「Dev Containers」 はメンテンナンスがしづらいと感じる方がいらっしゃるという事かな?と思いました。

コンテナ=ナウなヤングの開発環境?

また、開発環境の今昔というか流行についてのコメントも

ナウなヤング向けのアピール=コンテナという意見も

実際、コンテナ以外の環境も多々あるはずですが、とりあえず「開発環境ってどんな感じですか?」「コンテナです!」と言っておけば間違いないという風潮もあるようです。

他にも開発環境をめぐる様々な質問・コメントがありましたので、アーカイブ動画をご覧ください。

youtu.be

ということで、急遽予定変更となったにもかかわらず、沢山の方にお越しいただけました。ありがとうございました。

実際にVS CodeのDev Containersを試してみたい…という方、石本氏が過去に実施したライブデモの動画やスライドを見ながら、ぜひFJcloud-Vで開発環境の構築をお試しください! 下記のバナーをクリック↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓