Add nested podman Dockerfile variant - #581
openshift-merge-bot[bot] merged 1 commit into
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
WalkthroughAdds a nested-Podman container image and startup script. The Dockerfile sets up packages, users, capabilities, and entrypoint wiring, and the script initializes Podman config, storage settings, and subuid/subgid mappings before launching the container command. ChangesNested Podman image bootstrap
Sequence Diagram(s)sequenceDiagram
participant ContainerRuntime
participant catatonit
participant nested-podman-entrypoint.sh
participant Filesystem
ContainerRuntime->>catatonit: start ENTRYPOINT
catatonit->>nested-podman-entrypoint.sh: hand off command
nested-podman-entrypoint.sh->>Filesystem: write Podman config and ID mappings
nested-podman-entrypoint.sh->>ContainerRuntime: exec "$@"
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 10✅ Passed checks (10 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@images/Dockerfile.nested-podman`:
- Line 87: The nested-podman image sets CLAUDE_CONFIG_DIR but does not
explicitly define HOME, even though nested-podman-entrypoint.sh relies on HOME
for Podman config paths. Update the image environment so HOME is set to the
expected claude home directory alongside CLAUDE_CONFIG_DIR, keeping the
entrypoint contract consistent and ensuring Podman writes config to the correct
location.
In `@images/nested-podman-entrypoint.sh`:
- Around line 46-50: The subordinate ID mapping in the nested Podman entrypoint
is using an end ID instead of the required count, which can break rootless setup
for high random UIDs. Update the logic around USER, START_ID, and the
/etc/subuid and /etc/subgid writes so the third field is a positive range count
derived from the available IDs, not 65536 minus START_ID, and keep the mapping
creation in the same entrypoint block.
- Around line 8-35: The Podman setup in nested-podman-entrypoint.sh only writes
registries.conf and storage.conf inside the .config/containers directory
creation block, so both files are skipped when that directory already exists.
Update the entrypoint logic around the Podman config generation to create the
directory only if needed, but write registries.conf and storage.conf
independently so a pre-existing or partially mounted containers config still
gets the expected settings.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 3766293a-f354-4f35-9c72-f38a06219f30
📒 Files selected for processing (2)
images/Dockerfile.nested-podmanimages/nested-podman-entrypoint.sh
…tainers Adds Dockerfile.nested-podman and an entrypoint script that configures rootless podman at container startup (subuid/subgid, storage, registries). Based on the upstream ci/nested-podman image setup from openshift/release. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
41f66ff to
e3ad6f9
Compare
|
/lgtm |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: petr-muller, stbenjam The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Adds a separate Dockerfile (
images/Dockerfile.nested-podman) and entrypointscript that enable running podman commands inside CI containers. The setup
mirrors the upstream
ci/nested-podmanimage configuration fromopenshift/release: installs podman, shadow-utils, and fuse-overlayfs, sets up
rootless podman permissions (setcap, subuid/subgid), and uses catatonit as
init process chaining through an entrypoint script that configures podman
storage and user namespaces at container startup.
Summary by CodeRabbit