Closed9

VSCode + Dev Containers + Podman環境構築

hctaw_srphctaw_srp

環境

  • Windows 11
    • WSL2
      • Ubuntu
    • VSCode
      • 下記拡張機能をインストール済
        • Dev Containers
        • WSL
hctaw_srphctaw_srp

ざっくり手順

  • PodmanとPodman Desktopを入れる
  • 初期Podman環境(WSL)を作る
  • VSCodeの設定メンテナンス
  • VSCodeで接続
    • Host -> WSL
    • WSL -> Container
hctaw_srphctaw_srp

PodmanとPodman Desktopを入れる

$ winget search podman

名前           ID                    バージョン 一致        ソース
------------------------------------------------------------------
Podman         RedHat.Podman         4.9.1                  winget
dive           wagoodman.dive        0.11.0     Tag: podman winget
Podman Desktop RedHat.Podman-Desktop 1.7.0                  winget

RedHat.PodmanRedHat.Podman-Desktop をインストールする。

$ winget install --id RedHat.Podman
$ winget install --id RedHat.Podman-Desktop

winget でバージョン管理を噛ましたい意図でこのアプローチを行ったが、ここを読む限り、本来はGitHub上で管理の最新リリースを引っ張ってきてね、との感じだった。Podman Desktop経由でアップグレードが出来るなら、それでも良いのかな。

hctaw_srphctaw_srp

初期Podman環境(WSL)を作る

podman initpodman start 相当。Windows環境であればDesktopアプリから行うのが一番簡単。

キャプチャを撮り忘れたので文言で簡単に書いちゃうと、基本は Set Up のボタンからガイド通りにボタン押下を進めればPodman環境自体は立ち上がる。
Dockerと同じでコンテナ環境に割かれるリソース定義は .wslconfig に沿う。

$ wsl --list
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu (既定)
docker-desktop-data
docker-desktop
podman-machine-default

何も考えずにアプリをポチポチしていた場合は podman-machine-default の名前でPodman環境が作られる。

hctaw_srphctaw_srp

VSCodeの設定メンテナンス

VSCodeが Dev Containers 拡張でコンテナを立ち上げる時に利用するコンテナエンジンを修正する必要がある。dev.containers.dockerPathpodman にして終了。

hctaw_srphctaw_srp

VSCodeで接続

Podmanは環境がWSLに存在する(Dockerの場合はホストから docker コマンドを叩く感じになるが、PodmanはWSLから、との意味)ため、VSCodeでは一度WSL環境に入ってから、Dev Containers でコンテナを作る感じになる。

Host -> WSL

  1. Shift + Ctrl + P
  2. 「wsl」と入力
  3. 「WSL: Connect to WSL with Distro...」を押下
  4. 「podman-machine-default」を選択

これで対象WSL環境にアクセス成功。

WSL -> Container

ここはDockerでコンテナを立てていた時と同様な手順でOK。

  1. Shift + Ctrl + P
  2. 「container」と入力
  3. 「Dev Containers: Open folder in Container...」を押下

Dockerを利用時に作成した Dockerfilecompose.yml は全て互換性があるため、コンテナ起動のためにソースリポジトリ側を直す必要は全く無し。

hctaw_srphctaw_srp

手順ログだけなので、このスクラップはこれでクローズ。

このスクラップは3ヶ月前にクローズされました