🌊

Logue SDK 2.0をWindowsから使う時のメモ

2023/02/14に公開

Logue SDKは2.0からDockerベースになった。READMEに従えばほぼ困るところはなかったけど、いちおうメモ。

https://github.com/korginc/logue-sdk/tree/master/platform/drumlogue

WSLをインストール

(ここはググれば最新のやり方が出てくると思うのでスキップ)

wsl --install Ubuntu-22.04
wsl --set-default Ubuntu-22.04

Dockerをインストール

ほぼここに書かれてる通りだけど、ユーザー追加はsudo usermod -aG dockerじゃなくてsudo usermod -aG docker $USERなので注意(書かれなくてもわかるようなものだけど、Linux使うの久々すぎて何もかも忘れていた)。

https://dev.classmethod.jp/articles/docker-cli-without-dockerdesktop-on-windows/

いちおう全部書いておくと、こんな感じだった。

sudo apt update
sudo apt upgrade
sudo apt install ca-certificates curl gnupg lsb-release

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo   "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

sudo service docker start

sudo usermod -aG docker $USER

これでDockerが使えるようになってるはず。ちなみにWindowsの側からdockerを使うには、

wsl --exec docker run hello-world

みたいにすればいける。

ビルド用のDockerイメージをビルド

Logue SDKのレポジトリをクローンしてきて、以下を実行。何が起こってるのかはわからないけど、イメージがビルドされる。

wsl --exec ./docker/build_image.sh

logue-sdk-dev-envというイメージができていればOK。

❯ wsl --exec docker images
REPOSITORY          TAG       IMAGE ID       CREATED         SIZE
logue-sdk-dev-env   0.5.12    d70b14d6b9f6   9 minutes ago   2.89GB
logue-sdk-dev-env   latest    d70b14d6b9f6   9 minutes ago   2.89GB
hello-world         latest    feb5d9fea6a5   16 months ago   13.3kB

ちなみに、パスが\になってるとエラーになる。てっきりWSLが勝手に変換してくれると思って10分くらい悩んでしまった。

❯ wsl --exec .\docker\build_image.sh     
<3>WSL (5875) ERROR: CreateProcessEntryCommon:570: execvpe .\docker\build_image.sh failed 2
<3>WSL (5875) ERROR: CreateProcessEntryCommon:579: Create process not expected to return

ビルド

READMEに従えばビルドできる。

wsl --exec ./docker/run_interactive.sh

ちなみに、ビルド中に一時ファイルがつくられてちょっと邪魔。コミットする必要はないので、.gitignoreに入れてしまうとよさそう。pull requestを送ったのでマージされるかもしれない。

https://github.com/korginc/logue-sdk/pull/67

Discussion