LoginSignup
11
4

More than 3 years have passed since last update.

Remote-ContainersでPodmanを使う動作検証(随時更新)

Last updated at Posted at 2020-07-13

この記事について

VScode + Remote-ContainersでDockerの代わりにPodmanを使うために調査中の内容です。
Remote-ContainersおよびPodmanの開発が現在進行形なので、現時点で動作可能な環境を記載しています。

最新の情報は下記になります(2020/12/25 時点)。

VS Code + Remote Development + Podmanでコンテナの中で開発を行う

VS Code Conference Japanで発表した資料も合わせて参考にしてください。
Remote Development with Podman

関連記事:

VS CodeのRemote-Containersでリモートサーバー上のコンテナーの開発を行う方法


【注意!】情報は随時更新されます。記事の内容は 2020/9/11 時点。

サマリ

  • 完全に動作するのはFedoraのみ(ローカル接続のみ確認。リモート先は未実施。)
  • CentOS8はpodmanのバージョンが古いのでNG
  • macOSでpodman-remote自体は使えるが、Remote-ContainersのバグでDockerのチェックが回避できない
  • Windowsはpodman-remoteの接続設定が未完了のため、VScodeのテストは未実施

各OS組み合わせ

Fedora 32

バージョン情報

  • Kernel: 5.7.8-200.fc32.x86_64
  • Podman: 2.0.2
  • VScode: 1.47.0(1.48.0-insider)
  • Remote-Containers: 0.124.0
    • Docker Pathpodman指定
  • Dockerは未インストール

動作結果

  • 動作確認:「Add Development Container Configuration Files」で追加した素のdevcontainer.json

    • 結果:OK Fedora32_demo01.gif
  • 動作確認:Git cloneしたvscode-remote-try-python
    (下記、課題[1]の修正実施)

    • 結果:OK Fedora32_demo02.gif
  • 動作確認:「Try a Sample」

    • 結果:NG Fedora32_demo03.gif

課題

devcontainer.json
    "remoteUser": "vscode",
    "containerEnv": {
        "HOME": ""
    }
  • [2]Remote-Containersのバージョンを0.124.0を指定する

    • 0.125~0.128では下記のエラーが発生 Screen Shot 2020-07-14 at 4.57.02.png
    • 0.113〜0.118はコンテナエクスプローラーが機能せず
    • 事実上、0.119〜0.124の間でしか機能しない
  • [3]Try sampleのopenでエラー

  • [4]SElinuxを無効化しないとコンテナ内でファイル操作ができない

CentOS8

バージョン情報

  • Kernel: 4.1.8-193.el8.x86_64
  • Podman: 1.6.4
  • VScode: 1.47.0
  • Remote-Containers: 0.124.0
    • Docker Pathpodman指定
  • Dockerは未インストール

動作結果

  • 動作確認:「Add Development Container Configuration Files」で追加した素のdevcontainer.json

    • 結果:NG CentOS8_demo01.gif
  • 動作確認「Try a Sample」

    • 結果:NG CentOS8_demo02.gif
  • 動作確認:「Try a sample」以外

    • 結果:NG CentOS8_demo03.gif

課題

  • Fedoraで動作実績のあるpodmanのバージョンまで上げられれば動作の可能性はあるが、現時点では1.6.4以上のパッケージがない

macOS

バージョン情報

Podman-remote_1.9.3
$ podman version
Command "varlink" is deprecated, Please see 'podman system service' for RESTful APIs
Client:
Version:            1.9.3
RemoteAPI Version:  1
Go Version:         go1.13.8
Git Commit:         5d44534fff6877b1cb15b760242279ae6293154c
Built:              Sun Jul  5 03:13:57 2020
OS/Arch:            darwin/amd64

Server:
Version:            2.0.2
RemoteAPI Version:  1
Go Version:         go1.14.3
OS/Arch:            linux/amd64
Podman-remote_2.0.6
$ podman version
Client:
Version:      2.0.6
API Version:  1
Go Version:   go1.14.6
Git Commit:   27362ba1ad8879ea71610fa68a651a1651e0180f
Built:        Wed Sep  2 02:07:04 2020
OS/Arch:      darwin/amd64

Server:
Version:      2.0.6
API Version:  0
Go Version:   go1.14.6
Built:        Wed Sep  2 04:26:51 2020
OS/Arch:      linux/amd64
  • VScode: 1.47.0 or 1.48.0-Insiders →1.49.0
  • Remote-Containers: 0.128.0 → 0.140.1
    • Docker Pathpodman指定

動作結果

  • 動作確認:「Add Development Container Configuration Files」で追加した素のdevcontainer.json
    • 結果:NG
      • 下記のエラーが発生

Screen Shot 2020-07-13 at 11.42.10.png

  • 動作確認「Try a Sample」
    • 結果:NG
      • 下記のエラーが発生
      • コマンドでpodman build -f...と同じコードを実行しても同じエラー
Podman-remote_1.9.3
[30 ms] Start: Resolving remote
[44 ms] Start: Check Docker is running
[44 ms] Start: Run: podman info
[357 ms] Start: Run: podman volume ls -q
[591 ms] Start: Run: podman ps -q -a --filter label=vsch.local.repository=https://github.com/Microsoft/vscode-remote-try-python --filter label=vsch.local.repository.volume=vsc-remote-sample --filter label=vsch.local.repository.folder=vscode-remote-try-python --filter label=vsch.quality=stable
[835 ms] Start: Run: podman build -f /Users/shtanaka/.vscode/extensions/ms-vscode-remote.remote-containers-0.120.0/scripts/volumeBootstrap.Dockerfile -t vsc-volume-bootstrap /Users/shtanaka/.vscode/extensions/ms-vscode-remote.remote-containers-0.120.0/scripts
Error: dial unix /run/podman/io.podman: connect: no such file or directory
[1122 ms] Command failed: podman build -f /Users/shtanaka/.vscode/extensions/ms-vscode-remote.remote-containers-0.120.0/scripts/volumeBootstrap.Dockerfile -t vsc-volume-bootstrap /Users/shtanaka/.vscode/extensions/ms-vscode-remote.remote-containers-0.120.0/scripts
Podman-remote_2.0.6
[26 ms] Start: Resolving remote
[29 ms] Start: Check Docker is running
[30 ms] Start: Run: podman info
[474 ms] Start: Run: podman volume ls -q
[655 ms] Start: Run: podman volume create --label vsch.local.repository=https://github.com/Microsoft/vscode-remote-try-python --label vsch.local.repository.unique=false vsc-remote-sample
[866 ms] Start: Run: podman ps -q -a --filter label=vsch.local.repository=https://github.com/Microsoft/vscode-remote-try-python --filter label=vsch.local.repository.volume=vsc-remote-sample --filter label=vsch.local.repository.folder=vscode-remote-try-python --filter label=vsch.quality=stable
[1056 ms] Start: Run: podman build -f /Users/shtanaka/.vscode/extensions/ms-vscode-remote.remote-containers-0.140.1/scripts/volumeBootstrap.Dockerfile -t vsc-volume-bootstrap /Users/shtanaka/.vscode/extensions/ms-vscode-remote.remote-containers-0.140.1/scripts
[1261 ms] Cloning Github repository: Microsoft/vscode-remote-try-python into /workspaces/vscode-remote-try-python

[1261 ms] Start: Run: podman run -d --mount type=volume,src=vsc-remote-sample,dst=/workspaces -v /var/run/docker.sock:/var/run/docker.sock vsc-volume-bootstrap sleep infinity
  • 動作確認:「Try a sample」以外
    • 結果:NG
      • 全て下記のエラーが発生

Screen Shot 2020-07-13 at 11.42.10.png

課題

Windows

バージョン情報

動作結果

  • podman-remote.confの読み込みができていないため、VScodeの動作確認は未実施

課題

  • podman-remote.confの読み込みがうまくいかず(配置先がmacOSと違う?)
    • ~/.config/containers/podman-remote.conf
11
4
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
11
4