開発環境の構築 #5 ファイルシステム

WSL2 + Ubuntu + Docker で環境構築した場合にどこに開発したファイルを置くのがいいのか。

保管可能な場所は以下の三か所。

– Windows
– Ubuntu
– Docker

Docker(コンテナ)で開発するのだから、Docker(コンテナ)でいいかと思いきや、コンテナを削除した場合にファイルまで削除されるので、Docker は却下。

Windows にファイルを置けば、Ubuntu や Docker からアクセス可能(マウント)だが処理が遅い。

となると、ホスト (WSL / Ubuntu) に ファイルを置き、Docker コンテナからマウントすることになる。で、一件落着かと思いきや、今度は権限の問題が出てくる。

Ubuntu(WSL) はユーザー・グループともに ID 1000での操作で、Docker コンテナは root ユーザーでの操作となる。WSL を root で操作したり、Docker に同ユーザーを作成して操作することも可能だが、色々と不具合がある。

また、WSL(ホスト側)でコード編集をすることになると、VSCode のコード補完等でホスト側にもPHPをインストールする必要が出てくる(コード保管に言語インストールが必要らしい)。

結局、VSCode の Remote Development を使うことに。つまり、実際にはホスト側(Ubuntu)にファイルを置きつつも、マウントをするコンテナ側で直接 VSCode を用いてコードをリモート開発できるため、言語の重複インストールをしなくて済む。便利すぎ。