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から操作することができるようになります。
Nerves開発環境を作る
事前準備
- Windows 10 バージョン2004を用意(アップグレード?)する
- WSL2を有効にする
- 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。