Podman はデーモンレス・rootless で動作するオープンソースのコンテナエンジンです。Docker 互換のコマンドラインインターフェースを持ちながら、root 権限なしでコンテナを実行できるため、CI サーバーや共有環境でのセキュアなコンテナ利用に適しています。
このリポジトリの Jenkins ベースの CI では、Podman を使って Oracle Linux 開発コンテナイメージを pull・実行し、GitHub Actions と同じビルド環境を再現しています。コンテナイメージは GitHub Container Registry (ghcr.io) と Docker Hub の両方から取得できます。
このリポジトリのビルドに使用する Oracle Linux 開発コンテナは、GitHub Container Registry と Docker Hub の両方で公開されています。
認証なしで pull できます(公開イメージ)。
| イメージ | タグ | リンク |
|---|---|---|
ghcr.io/hondarer/oracle-linux-container/oracle-linux-8-dev |
latest / main / vYYYYMMDD.x.x |
pkgs |
ghcr.io/hondarer/oracle-linux-container/oracle-linux-10-dev |
latest / main / vYYYYMMDD.x.x |
pkgs |
podman pull ghcr.io/hondarer/oracle-linux-container/oracle-linux-8-dev:latest
podman pull ghcr.io/hondarer/oracle-linux-container/oracle-linux-10-dev:latestGitHub Secrets (DOCKERHUB_USERNAME / DOCKERHUB_TOKEN) が設定されている場合に ghcr.io と同一タグで push されます。公開されているため、認証なしで pull できます。
| イメージ | タグ | リンク |
|---|---|---|
hondarer/oracle-linux-8-dev |
latest / main / vYYYYMMDD.x.x |
Docker Hub |
hondarer/oracle-linux-10-dev |
latest / main / vYYYYMMDD.x.x |
Docker Hub |
podman pull hondarer/oracle-linux-8-dev:latest
podman pull hondarer/oracle-linux-10-dev:latest| 条件 | 推奨レジストリ |
|---|---|
| 制約なし | ghcr.io (推奨) |
| ghcr.io への接続が困難な環境 | Docker Hub |
| プライベートイメージへのアクセスが必要 | Jenkins Credentials で認証情報を管理 |
Jenkins の Execute shell スクリプト内で podman pull と podman run を使い、コンテナ内で make / make test を実行します。詳細な手順は Jenkins スキルガイド を参照してください。
概念図:
Jenkins ジョブ (Execute shell)
|
+-- podman pull <IMAGE> # レジストリからイメージ取得
|
+-- git clone --recurse-submodules # ワークスペースにリポジトリを展開
|
+-- podman run --rm -i \ # コンテナ内でビルド実行
--entrypoint /bin/bash \
-v "$WORKDIR:/workspace:Z" \
<IMAGE> ...
|
+-- devcontainer-entrypoint.sh # ユーザー初期化
+-- make # ビルド
+-- make test # テスト
GitHub Actions の Linux CI でも同じイメージを使用しています (.github/workflows/ci.yml)。Jenkins でも同一イメージを使うことで、ローカル環境・CI の差異を最小化できます。