Open4

(2021年版)Podman + Remote-Containers

Shion TanakaShion Tanaka

前提

macOS上でVS Codeを使用することを前提として記載。Windowsもほぼ読替でいけるはず(WSLがあるから必要ないと思われるが)。

Shion TanakaShion Tanaka

状況

Dockerの代わりにPodmanを使ってRemote-Conteners(Dev Containerの起動)は可能。
ただし、環境は実行モードにより若干の調整ごとは必要

Shion TanakaShion Tanaka

使用できるパターン

おすすめ

  • 接続先: 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関連の自動マウントなど)は使用できない
  • 簡易的な使い捨て実行環境