Home:0
きままな個人開発ブログ
Dockerfileから簡単にWSL2の日本語環境を作れるようにしてみた
2020/08/16#WSL2#Docker
前回はMSストアから導入したUbuntu上で環境を作成していたのですが、手順が長く気軽に作り直しができなかったのでGUI環境や日本語入力に必要なパッケージをDockerfileにまとめました。

事前に必要な手順

使い方

各コマンドに記載しているworkspaceは適宜変更が可能です。

既存のWSL環境にてイメージファイルの作成

  • docker build時にbuild-argによって指定したユーザーが作られます。省略した場合の初期値は記載している値と同様です。
$ git clone git@github.com:s1140227/wsl2-jp-genie.git
$ cd wsl2-jp-genie
$ docker build \
      -t workspace \
      --build-arg USERNAME='user' \
      --build-arg PASSWORD='user' \
      --build-arg ROOT_PASSWORD='root' .
$ docker run --name workspace -it -d workspace
$ docker export --output workspace.tar workspace
$ mv workspace.tar /mnt/c/...

PowerShellにてWSLにインポート

PS > wsl --import workspace ./workspace .\workspace.tar
PS > wsl --list --verbose
  NAME                   STATE           VERSION
* Ubuntu-18.04           Running         2
  docker-desktop-data    Running         2
  docker-desktop         Running         2
  workspace              Stopped         2

Docker Desktopによるdockerプロセスはデフォルト設定されているWSLコンテナとのみ繋がっているようです。 必要に応じてデフォルト設定を変更してください。

PS > wsl --set-default workspace

2021/02/13 追記

Docker Desktopの設定からデフォルト設定のコンテナ以外にも、dockerコマンドを有効化することができました。初期設定では一番上にのみにチェックされていて(Enable integration with my default WSL distro)、デフォルト設定されているWSLコンテナのみ有効な状態でした。

setting

特徴

  • デスクトップ環境は入っておらずUbuntu 18.04のみで構成されています。
    • 必要に応じてお好きなデスクトップ環境を入れてください。
  • 日本語環境としてfcitx-mozcを入れています。
    • $ fcitx-config-gtk3 にてキー設定を変更できます。
  • GUI環境(X Window System)としてx11-appsを入れています。
    • WindowsにてVcXsrv などのXサーバーが起動している際 $ xeyes にて接続を確認できます。
    • VcXsrvの場合起動時に Disable access control をONにしてください。
  • systemd-genie を導入済みです。
    • 起動時にはsystemdが利用できるシェルになります。
  • snapd を導入済みです。
    • Snap Store に掲載されているGUIアプリをインストールできます。
    • Sublime Textの例 $ sudo snap install sublime-text --classic && subl

以前の記事からの変更点

以前の記事 と異なり汎用的な部分のみに絞りました。

  • Node Version ManagerやYarn、WebStormは後から入れれば良いのでDockerfileには入れていません
  • ubuntu-wsl2-systemd-script は依存が足りなかったのか、WSLコンテナが複数あるのが原因なのかわからなかったのですが動かなかったのでsystemd-genieを入れています