2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘録】Flatpakを使ってWayland環境に入れたVSCodeでpodmanからdevcontainerを使う

Posted at

何故そんなことをした? という感じですが、何故かこうなりました。

環境

  • ディストリビューション: 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を使いたくなかったので以下の設定。

image.png

Podmanのソケットを見るために以下の設定(重要)。

image.png

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"

とはいえ、個人的には、今回の環境は従来のものより先進的で、将来のあるべき形だと信じているので、このまま続けたい。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?