見出し画像

コンテナで開発環境を作る

私はWindowsPCしか持っていませんが、開発しているときの悩みは
「Windows環境を汚したくない」でした。開発用のツールを入れる、ライブラリを入れる、次の開発ではバージョンアップ/一度アンインストールしてバージョンダウンしたものを入れなおす。。
これではどんどん環境が汚れていき、思わぬところでトラブルの原因になります。
そこで時代の進化とともにこの悩みを解決する開発環境を見つけました。
それはWSL(Windows10上で動かく仮想LinuxOS)とDockerを使いLinuxコンテナを作成し、VisualStudioCode(これはWindows側に入っている)がLinuxコンテナ上のファイルを編集・デバッグする方法です。

画像1

上図のようにWSL2とDockerをインストールしVisualStudioCodeと連携することで、これまで通り、VisualStudioCodeを起動するとLinux上のコンテナで開発できます。

コンテナ上での開発だから環境が汚れない

例えばこれまでの開発(上図の左)python3.7で開発をしていた人が次の開発からpython3.9にする場合、バージョンアップする必要があります。それだけならよいですが、次の開発で前のアプリを改修することになりpython3.7の環境が欲しい場合があると都度、環境を作り直す必要がありました。
それがWSL2+Dockerでは、あくまでもコンテナイメージ上での開発になるのでPython3.7とPython3.9のイメージをそれぞれ作るだけであとは開発が発生したときに必要な環境を起動して開発できます。

bashコマンドを使える

開発をしているとわからないことをインターネットで調べることが多いと思います。すると、けっこうMacユーザ多かったりしませんか?MacとWindowsだとOSが違うのでコマンドが違ったり環境が違ったりと、せっかく同じようなことをやっている人の記事を見つけても自分の環境ではできなかったり。。
しかし、コンテナ開発ではLinuxのOSを構築できるので、bashコマンドが使えるようになります。

WSL2をインストールする

WSL2のインストール方法を説明していきます。
マイクロソフト公式のリンクに記載している内容を順次やっています。
参考にしてください。参考にしてください。

1.PowerShellを起動する

画像2

2.WSLを有効化する

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

3.コマンドプロンプトを起動してデフォルトバージョンを2に設定する
PowerShellで実行できる場合はPoweShellを使って問題ないですが、なぜか私の環境ではwslコマンドが認識されていなく、コマンドプロンプトで実行しました。

wsl --set-default-version 2

4.OSを再起動する

5.WSL2にUbuntuを入れる

Microsoft Storeを開く

画像3

ubuntuを検索する

画像4

画像5

画像6

Ubuntuでのユーザ作成を経て下記画面が表示されればWSL2でUbuntuが起動したことになります。

画像7

Windowsのスタートメニューにも表示されています。

画像8

WSL2とVisualStudioCodeを連携してみる

Ubuntuを起動し「code .」と入力しEnterを押してください。

画像9

画像10

UbuntuからVisual Studio Codeが起動し、「Remote WSL」というアドオンのインストールを促されますのでインストールしてください。

画像11

Visual Studio Codeから「test.txt」というファイルを作ってみます。
Ubuntu側からlsコマンドでファイルを表示すると、test.txtが表示されます。

画像12

本日はWSL2を有効化してVisualStudioCodeと接続してみました。
これでLinux上の開発環境を1つ手に入れましたが、ここで色んなライブラリを入れるとどんどんUbuntu環境が汚れてしまいます。
次回はDockerをインストールしてコンテナ上で開発環境を作っていきます。
これによりコンテナイメージ上での開発になるので、必要に応じてコンテナイメージのビルド&スクラップできれいな環境を簡単に作成&再利用できるようになります。

この記事が気に入ったらサポートをしてみませんか?