何故そんなことをした? という感じですが、何故かこうなりました。
環境
- ディストリビューション: Arch Linux
- デスクトップ環境: KDE Plasma 6
- Flatpak: 1.15.91
- VSCode: 1.96.1
- podman: 5.3.1
(省略) podmanのインストールと設定
ホスト側にもpodmanのインストールが必要。
既に出来ていたので省略。ArchWikiを見てインストールしたはず。
podman ps
や
ls /run/user/1000/podman/podman.sock
が動作することを念の為確認。
FlatpakでのVSCode用 podman-remote
のインストール
flatpak install com.visualstudio.code.tool.podman
これで、VSCodeのbashに /app/tools/podman/bin/podman-remote
が生えてくる。
FlatsealでのVSCodeの設定
Flatpak使うなら com.github.tchx84.Flatseal
は絶対入れよう! コマンドラインで設定するより格段に楽になる
標準から変化させている箇所としては以下。
XWaylandを使いたくなかったので以下の設定。
Podmanのソケットを見るために以下の設定(重要)。
VSCodeの設定
VSCode上から以下の設定をいじる。
"dev.containers.dockerPath": "/app/tools/podman/bin/podman-remote", // Dockerのかわりにpodman-remoteを使うようにする
"dev.containers.mountWaylandSocket": false, // 理由はよく分からないが、falseにしないとソケットがない的なエラーが出た
(おまけ) 日本語入力を行えるようにする
flatpak run com.visualstudio.code --enable-wayland-ime
のように、 --enable-wayland-ime
オプションをつけると日本語入力が出来た。
$HOME/.config/code-flags.conf
にこの設定を書けば永続化できるらしい。
devcontainer.json
の設定
この設定が必要なのはかなり微妙。 devcontainer.json
をいちいち書き換えないと動かなかった。
以下を追加する。
"runArgs": [
"--userns=keep-id:uid=1000,gid=1000"
],
"containerUser": "vscode",
"updateRemoteUserUID": true,
他にもうちょいいい環境ないの?
- そもそもFlatpakでVSCode使うのしんどいのでは、という話はある
- podmanよりdockerの方がdevcontainerにはいい気がしてきた
- 以下の2つの設定さえすればFlatpak + Dockerでも使えるような気がする
- Flatsealから、見れるファイルに
/var/run/docker.sock
を付け加える - VSCodeの設定で
"dev.containers.dockerPath": "/run/host/usr/bin/docker"
とはいえ、個人的には、今回の環境は従来のものより先進的で、将来のあるべき形だと信じているので、このまま続けたい。