Skip to content

suecharo/nig-podman

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

nig-podman

Docker に慣れたユーザーが NIG スパコンの Podman 環境にスムーズに移行するための:

  • セットアップ手順
  • よく使うサービスの設定例(nginx, PostgreSQL, Elasticsearch)
  • 開発用テンプレート(Python, TypeScript)

想定読者

  • Docker の基本操作に慣れている NIG スパコンユーザー
  • rootless Podman でのコンテナ運用を始めたい人
  • Docker/Podman 両対応の開発環境を構築したい人

リポジトリ構成

nig-podman/
├── docs/                         # ドキュメント
│   ├── introduction.md          #   Docker vs Podman の違い
│   ├── setup.md                 #   NIG 環境でのセットアップ
│   ├── uid-mapping.md           #   rootless UID マッピング解説
│   ├── compose-tips.md          #   compose の Docker/Podman 両対応
│   ├── auto-restart.md          #   サーバー再起動後のコンテナ自動起動
│   └── podman-socket.md         #   podman.sock と Docker CLI の連携
└── examples/                     # 設定例・テンプレート
    ├── nginx/                    #   リバースプロキシ
    ├── postgres/                 #   PostgreSQL
    ├── elasticsearch/            #   Elasticsearch
    ├── python-uv/                #   Python + uv
    ├── python-pip/               #   Python + pip
    ├── typescript-bun/           #   TypeScript + Bun
    └── typescript-npm/           #   TypeScript + npm

基本コンセプト: compose.override.podman.yml パターン

ベースの compose.yml は Docker 互換で書き、Podman 固有の設定は compose.override.podman.yml に分離する:

# Docker 環境
docker compose up

# Podman 環境
podman-compose -f compose.yml -f compose.override.podman.yml up

# Podman で毎回 -f を省略したい場合
cp compose.override.podman.yml compose.override.yml
podman-compose up

詳細は compose の Docker/Podman 両対応 を参照。

ドキュメント

ドキュメント 内容
Docker と Podman の違い 基本的な違い、NIG で Podman を使う理由
NIG での Podman セットアップ storage.conf, registries.conf の設定手順
rootless UID マッピング UID マッピングの仕組み、keep-id オプション
compose の Docker/Podman 両対応 override パターン、パーミッション戦略
サーバー再起動後のコンテナ自動起動 podman-restart.service による自動起動
podman.sock と Docker CLI の連携 Podman ソケット経由での Docker CLI 利用

設定例・テンプレート

内容 Podman 設定
nginx リバースプロキシ 追加設定不要(root で動作)
PostgreSQL DB サーバー keep-id:uid=999,gid=999
Elasticsearch 検索エンジン keep-id:uid=1000,gid=1000
python-uv Python + uv 開発環境 keep-id
python-pip Python + pip 開発環境 keep-id
typescript-bun TypeScript + Bun 開発環境 keep-id
typescript-npm TypeScript + npm 開発環境 keep-id

開発テンプレート(python-*, typescript-*)の構成:

  • Dockerfile - 依存インストール + chmod -R a+rwX + 任意 UID 用ホーム作成
  • compose.yml - ベース(named volume、Docker/Podman 共通)
  • compose.override.podman.yml - Podman 用(userns_mode: "keep-id":U フラグ)
  • .dockerignore

Quick Start

セットアップ手順 に従って ~/.config/containers/ に設定ファイルを配置した後、設定例を利用する:

cd examples/python-uv

# Docker 環境
docker compose up --build

# Podman 環境
podman-compose -f compose.yml -f compose.override.podman.yml up --build

env ファイルが必要な例(postgres, elasticsearch):

cd examples/postgres
cp env.example .env
# .env を編集してパスワード等を設定

動作確認環境

環境 OS ツール
Docker (ローカル) Ubuntu 22.04 Docker 29.2.1
Podman (NIG スパコン) Ubuntu 24.04 Podman 4.9.3, podman-compose 1.0.6

License

Apache License 2.0

About

No description, website, or topics provided.

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors