WindowsでNervesやるならWSL2+Docker+VSCode


Windows 10 + WSL2 + Docker + VSCodeで、Nerves開発環境をサクッと作れるdevcontainerを作りました。

変更履歴

Date Author ChangeLog
2020/7/11 @matsujirushi id_rsaのリンク作成コマンドを訂正

devcontainerとは?

その名のとおり、開発(development)に使うDockerコンテナ(container)です。
VSCode拡張のRemote - Containersがこのフォルダ(ファイル?)を開くと、定義されたDockerコンテナを構築して良い感じにフォルダをマウント、VSCodeから操作することができるようになります。

Developing inside a Container

Nerves開発環境を作る

事前準備

  1. Windows 10 バージョン2004を用意(アップグレード?)する
  2. WSL2を有効にする
  3. Docker Desktopをインストールする

これでは良く分からないという方は、、、こちらをご参照くださいませ。

Nerves開発用devcontainerをクローン

適当なフォルダにgit cloneしてください。

git clone https://github.com/matsujirushi/nerves-devcontainer

VSCodeでdevcontainerを起動する

Remote Development拡張を入れたVSCodeのRemote-Container: Open Folder in Containerで、.devcontainerのあるフォルダを開いてください。

すると、、、Dockerコンテナの作成が始まって、、、

はいっ、完成。

メニューの表示 > ターミナルで、Dockerコンテナ内のシェルが表示できます。

/workspaces/nerves-devcontainer 配下が、git cloneしたところにマウントされているので、消えたら困るファイルはここに置くようにしましょう。

Nervesサンプルをビルド

(任意)キーの作成

Nervesのビルドにキーが必要です。無い場合は下記コマンドで作成してください。
~/.sshに作ると、、、Dockerコンテナと一緒に消えて無くなってしまうので、/workspaces/nerves-devcontainer/.sshにシンボリックリンクで対処します。

mkdir .ssh
ssh-keygen -t rsa -f .ssh/id_rsa
ln -s `pwd`/.ssh/id_rsa* ~/.ssh/

Nervesサンプルを作成、ビルド

こんな感じ。

mix nerves.new hello_nerves
cd hello_nerves
export MIX_TARGET=rpi3
mix deps.get
mix firmware

イメージファイルの書き込み

ビルド結果のイメージファイルをmicroSDなどにフラッシュするときは、Windowsのコマンドプロンプトでfwup.exeすればOK。