{"id":18497795,"url":"https://github.com/containers/podman-bootc","last_synced_at":"2025-04-09T00:30:42.098Z","repository":{"id":235193241,"uuid":"790263226","full_name":"containers/podman-bootc","owner":"containers","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-14T15:17:35.000Z","size":331,"stargazers_count":36,"open_issues_count":35,"forks_count":12,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-03-23T19:44:38.360Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/containers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-22T15:04:01.000Z","updated_at":"2025-03-05T22:46:56.000Z","dependencies_parsed_at":"2024-06-19T11:17:43.179Z","dependency_job_id":"358e7b40-768d-4aa8-857a-b7b5864d756a","html_url":"https://github.com/containers/podman-bootc","commit_stats":null,"previous_names":["containers/podman-bootc-cli","containers/podman-bootc"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/containers%2Fpodman-bootc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/containers%2Fpodman-bootc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/containers%2Fpodman-bootc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/containers%2Fpodman-bootc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/containers","download_url":"https://codeload.github.com/containers/podman-bootc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247949678,"owners_count":21023368,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T13:35:49.352Z","updated_at":"2025-04-09T00:30:42.086Z","avatar_url":"https://github.com/containers.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Streamlining podman + bootc interactions\n\nThis project aims to address \u003chttps://github.com/containers/podman/issues/21243\u003e\nin alignment with the \u003chttps://github.com/containers/bootc\u003e project.\n\n## Goals\n\n- Be a scriptable CLI that offers an efficient and ergonomic \"edit-compile-debug\" cycle for bootable containers.\n- Be a backend for \u003chttps://github.com/containers/podman-desktop-extension-bootc\u003e\n- Work on both MacOS and Linux\n\n## Running\n\nFirst and foremost, `podman-bootc` requires a *rootful* Podman Machine to be\nrunning, which is the default on MacOS and Windows.  On Linux, make sure to\ncreate a Podman Machine via `podman machine init --rootful --now` which implies\nthat you need to run podman with `--remote` command to make built images\navailable to `podman-bootc`.\n\nThe core command right now is:\n\n```shell\npodman-bootc run \u003cimagename\u003e\n```\n\nThis command creates a new virtual machine, backed by a persistent disk\nimage from a \"self install\" of the container image, and makes a SSH\nconnection to it.\n\nThis requires SSH to be enabled by default in your base image; by\ndefault an automatically generated SSH key is injected via a systemd\ncredential attached to qemu.\n\nEven after you close the SSH connection, the machine continues to run.\n\n### Other commands:\n\n- `podman-bootc list`: List running VMs\n- `podman-bootc ssh`: Connect to a VM\n- `podman-bootc rm`: Remove a VM\n\n### Architecture\n\nAt the current time the `run` command uses a\n[bootc install](https://containers.github.io/bootc/bootc-install.html)\nflow - where the container installs itself executed in a privileged\nmode inside the podman-machine VM.\n\nThe installation target is a raw disk image is created on the host, but loopback\nmounted over virtiofs/9p from the podman-machine VM.\n\n(The need for a real-root privileged container to write Linux filesystems is part of the\n rationale for requiring podman-machine even on Linux is that\n it keeps the architecture aligned with MacOS (where it's always required))\n\nIn the future, support for installing via [Anaconda](https://github.com/rhinstaller/anaconda/)\nand [bootc-image-builder](https://github.com/osbuild/bootc-image-builder)\nwill be added.\n\n## Installation\n\n### MacOS\n\nFirst be sure you have the Podman Desktop [bootc extension requirements](https://github.com/containers/podman-desktop-extension-bootc?tab=readme-ov-file#requirements).\n\nOn MacOS you can use homebrew to install podman-bootc:\n\n```\nbrew tap germag/podman-bootc\nbrew install podman-bootc\n```\n\nalternatively, you can download the latest development cutting-edge source\n\n```\nbrew install --head podman-bootc\n```\n\nIt will install xorriso and libvirt, but it doesn't install qemu.\nYou need to install qemu manually, using brew:\n```\nbrew install qemu\n```\nor by other mean and make it available in the path.\n\n### Fedora\n\nFor Fedora 40+ and Rawhide we provide a COPR repository.\nFirst, enable the COPR repository:\n\n```\nsudo dnf -y install 'dnf-command(copr)'\nsudo dnf -y copr enable gmaglione/podman-bootc\n```\n\nthen you can install `podman-bootc` as usual:\n\n```\nsudo dnf -y install podman-bootc\n```\n\n## Building from source:\n\nOur generic dependencies:\n\n- qemu-system-x86_64 / qemu-system-aarch64\n- xorriso/osirrox\n- golang\n- libvirt-devel\n\nTo compile it, just run in the project directory:\n\n```shell\nmake\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontainers%2Fpodman-bootc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcontainers%2Fpodman-bootc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontainers%2Fpodman-bootc/lists"}