- - GitやプロジェクトファイルはWSLに導入
- - 改行コード問題
- - ファイルパーミッション問題
- - 各種アプリケーションの導入
- - Sourcetreeからはリモートに繋がないことに
- - VisualStudioCodeはWindowsでもサクサク
- - JetBrainsのIDEはWSLなら快適
- - DockerはWindows側のみで大丈夫
- - 開発環境をWSLに寄せるならDockerfileで管理できそう
目次
GitやプロジェクトファイルはWSLに導入
下記2点の問題で苦労するよりWSL上に配置したほうが良さそうです。
改行コード問題
Windowsの場合改行コードがCR+LF
ですがLinuxやMacではLF
なのでコミット時に変更してあげる必要があります。autocrlfによってどういったツールで編集したとしてもLF
にてコミットされます。
$ git config --global core.autocrlf input
ファイルパーミッション問題
GitはLinuxのファイルパーミッションに従っているので、Windowsではその情報が解釈できず変換されてしまいます。Git設定にてfilemodeを設定することでその変換を無視することができますが根本的な解決ではなさそうです。
$ git config --global core.filemode false
WSL側からWindowsのディレクトリ(/mnt/c...
)に対しプロジェクトを作成した場合、導入したライブラリがエラーになるケースも考えられます。
各種アプリケーションの導入
Sourcetreeからはリモートに繋がないことに
SourcetreeのGitパスを変更できれば設定やSSHキーの二重管理から開放されると思ったのですができなさそうです。そもそもIDE上の機能やターミナルからpullやcommitすれば良いので利用を限定する形で導入しました。
Windows側にインストールし、WSL上にあるプロジェクトディレクトリ(\\wsl$\...
)を追加しています。
利用するケース
- コミット単位の変更を素早く見たい時
- 他の方のブランチを確認
- 必要に応じてmergeやpickなど
VisualStudioCodeはWindowsでもサクサク
VisualStudioCodeはvscode-remote-extensionpackがとても優秀でした。
起動時はファイルをキャッシュしているようで若干遅いものの、Windows側からWSL上のプロジェクトを編集してもスピードが落ちたりするなどといった問題はなかったです。Lintツールも特に設定を変更せずともWSL環境のものを使ってくれていました。
JetBrainsのIDEはWSLなら快適
WebStormなどJetBrainsのIDEはWSL上のファイル読み込みがとても遅く、WSL上にインストールする必要がありました。
実際の導入方法は次の記事に記載しました。WSL2上にWebStromをインストールしWeb開発の環境を作る
DockerはWindows側のみで大丈夫
Docker DesktopをWSL2 の設定が完了している状態でインストールするとUse the WSL 2 based engine
をONにして導入することができます。これだけでWSL上でもdocker
コマンドが利用できます。
開発環境をWSLに寄せるならDockerfileで管理できそう
上記環境ではSourcetreeを除けばLinux版が提供されています。IDEなどはsnapcraftでも提供されているのでインストールも簡単です。
VisualStudioCodeの例
$ sudo snap install code --classic
会社によっては支給されたマシンのみでの作業になるため環境のズレや変更の手間が生じてきます。そこでDockerfileで管理できないか調べてみました。
参考 Export/Import機能により開発環境のシェアもカンタン
ステップ
- Dockerfileからimageを作成 > build
- コンテナの実行 > run
- Dockerコンテナをtarファイルへ書き出し > export
- PowerShellによりWSLへ取り込む > import
$ docker build [オプション] パス | URL | -
$ docker run [オプション] イメージ [コマンド] [引数...]
$ docker export [オプション] コンテナ
PS > wsl --import <Distro> <InstallLocation> <FileName>
プロジェクト横断で使うツールはこういった管理方法も良さそうですね。
実際にDockerfileを作成しました。Dockerfileから簡単にWSL2の日本語環境を作れるようにしてみた