初めに
こんにちは、本書をご覧になっていただき、読者のみなさまに感謝します。
最近ではDocker/K8Sの利用が増え、確実に動く環境で開発し、テストし、デバッグし、そのままデプロイすることが増えている。
現在筆者が携わっているオープンアソシエイツ(RPAテクノロジーズ/BizROBO,JimuROBO)社やスキャる社でもアプリの一部がDockerコンテナやK8Sポッドとして動き、サービスを提供している。
筆者はこうしたシステムの設計や開発・運用・パフォチューなどに従事しているのだが、Windowsでの開発環境でVSCodeとDockerを組合わせて使っている。
今回は、この環境の作成方法を説明することで、これまでの総括をし、似たような環境を構築したいと考えている方々の参考になるのではとの思いから本書を投稿した。
念のために、タイトルなどの略語は以下のこと。詳しい説明は省略。
- WSL: Windows subsystem for linux
- VSC: Visual Studio Code
- K8S: Kubernetes
対象の読者
以下のような方々のお役にたてれば幸いです。
- ソフトウェア開発、特に製造や評価などに関わる人
- WSLのLinux/DockerDesktopが素直でなく、使う気になれなかった人
- WSLでDockerを動かしてVSC開発しようとしたが、うまくいかなかった人。
- WSLとWindowsでのファイル共有などで、文字コードの違いに困っていた人
環境構築の前提と方針
用意するPC
Windows10でDocker環境が動くCPUとメモリー(最低で8G,推奨16G以上)
構築方針
- なるべくPC全体の環境を汚さないようにする
- ユーザごとに独立した環境を作る
- アプリやツールは自由に入れ替えられるようにする
時は満ちた
念願のWSL2
VSCとDockerの開発にはWSLを使わず、やや古い環境である、DockerMachineを改造してHyper-Vで使っていた。(SambaClientが動作するようにLibraryを追加・更新し、WindowsのドライブをマウントできるようにN/WやDNSを設定などを追加1) 仮想環境の仮想Switchを固定IPで作成し、C:ドライブを/cにマウントしておくことで、Docker定義のBindMountがうまく働いでDockerファイルやDockerComposeなどを動かすことができていた。
本当はWSLを使いたかっただが、以下のような理由から断念していた。(今となってはうろ覚えだが、、、)
- 素直でない:docker コマンドを素直に使えない
- 文字コード:BindMountなどで共有した場合のファイル名の文字コードなどに日本語が使えない
だったと思う。
アップデートができない、、、
WSL2への更新が2020年9月から開始された。「Windows 10 May 2020 Update (Version 2004)」で使えるようになるとアナウンスされ2、Windows Updateでも以下のような表示がされるようになった。しかし、筆者のマシンは会社のポリシーからか一向に更新可能にならず、、、 残念な思いをしていた。
でも大丈夫
よくよく調べてみると、Version 2004に上げなくともWSL2を使えるようになるというのが分かった。(MSの記事3では、x64 システムの場合:バージョン 1903 以降、ビルド 18362 以上) そこで、何度かWindows Updateを繰り返すことで、Version 1903(OS ビルド 18362)にすることができた。
インストールのやり方などは省略
インストールの仕方自体は他の記事に譲り、ここでは、以下のような流れでVSCode開発をDockerコンテナ内で行う環境を構築する方法を説明する。
終りに
以下のような構成で記事を書き進めていく予定。
シリーズ全体構成
- WSL2とVSCで作るWindowsでのDocker内開発環境
- パッケージ管理(scoop)
- PowerShellCore
- ターミナル(WindowsTerminal)で効率アップ
- 基本ツールと環境設定
- WSL2の手動インストール
- Docker Desktop for Windows on WSL2
- Visual Studio Code
- 開発環境用MySQL+Admin
- Docker内PHP開発環境 1/2
- Docker内PHP開発環境 2/2
- Docker内Pytho開発環境
- Docker内NodeJS開発環境
- Docker内Java開発環境
- WSL2/Dockerのトラブル治療室