Open4
(2021年版)Podman + Remote-Containers
2021年12月14時点での、VS Code + Remote-Containers + Podmanの情報
前提
macOS上でVS Codeを使用することを前提として記載。Windowsもほぼ読替でいけるはず(WSLがあるから必要ないと思われるが)。
状況
Dockerの代わりにPodmanを使ってRemote-Conteners(Dev Containerの起動)は可能。
ただし、環境は実行モードにより若干の調整ごとは必要
使用できるパターン
おすすめ
- 接続先: podman machine
- SSH接続先はroot fullを指定(docker.sockに接続するため。ハードコードされている?)
- ソースファイルはContainer Volume(Dev Volume)にgit cloneして開く
- →
Clone Repository in Container Volume...
- →
- Container Volumeにデータの永続化はされるが、最終的な保存はgit push
Podman Remote + ボリュームマウント
- 接続先: podman machine、またはSSH接続先の任意のLinux
- ソースファイルを開くため、macOSからSSH接続先へボリュームマウントは必須
- SSHFSの併用など
- devcontainer.jsonの調整
-
--userns=keep-id
の指定 -
containerUser=
の指定
-
SSH接続先でRemote-Containersを実行
- VS Code v1.63.0からの新機能
- SSH接続先にソースファイルを配置するため、macOSからSSH接続先へボリュームマウントは不要
- devcontainer.jsonの調整
-
--userns=keep-id
の指定 -
containerUser=
の指定
-
(番外)podman runで起動したコンテナにアタッチする
- 接続先: podman machine、またはSSH接続先の任意のLinux
- 起動済みのコンテナに接続するため、ボリュームマウントやdevcontainer.jsonの調整は不要
- 本来のDev Containerでは無いため、VS Codeがよしなにやってれる便利機能(.git関連の自動マウントなど)は使用できない
- 簡易的な使い捨て実行環境