{"id":13579957,"url":"https://github.com/cyphar/orca-build","last_synced_at":"2025-10-22T10:54:53.013Z","repository":{"id":144201293,"uuid":"87218735","full_name":"cyphar/orca-build","owner":"cyphar","description":"Build OCI images from Dockerfiles.","archived":false,"fork":false,"pushed_at":"2018-11-21T21:17:53.000Z","size":83,"stargazers_count":181,"open_issues_count":6,"forks_count":7,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-02T00:14:13.838Z","etag":null,"topics":["containers","dockerfile","oci","oci-image","rootless-containers"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cyphar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-04-04T17:59:47.000Z","updated_at":"2025-03-01T11:37:39.000Z","dependencies_parsed_at":"2023-06-18T12:00:14.815Z","dependency_job_id":null,"html_url":"https://github.com/cyphar/orca-build","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/cyphar/orca-build","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyphar%2Forca-build","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyphar%2Forca-build/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyphar%2Forca-build/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyphar%2Forca-build/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cyphar","download_url":"https://codeload.github.com/cyphar/orca-build/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyphar%2Forca-build/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280424210,"owners_count":26328462,"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","status":"online","status_checked_at":"2025-10-22T02:00:06.515Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["containers","dockerfile","oci","oci-image","rootless-containers"],"created_at":"2024-08-01T15:01:45.268Z","updated_at":"2025-10-22T10:54:52.996Z","avatar_url":"https://github.com/cyphar.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"## `orca-build` ##\n\n`orca-build` allows you to build OCI images from a `Dockerfile` or `Orcafile`. It\ndoesn't require a daemon or root privileges to operate. It is a fairly small\nPython wrapper around the following projects (which are obviously requirements\nto use `orca-build`):\n\n* [`umoci`](https://github.com/openSUSE/umoci)\n* [`runC`](https://github.com/opencontainers/runc)\n* [`skopeo`](https://github.com/projectatomic/skopeo)\n\nThis was a [SUSE Hackweek project][hw] and is mainly intended to be a simple\ntool for users that might want to create images as a rootless user, or to play\naround with a simple PoC of how various OCI technologies can interact with each\nother.\n\n[hw]: https://hackweek.suse.com/15/projects/orca-build-oci-images-from-dockerfiles\n\n### Usage ###\n\nThe usage is kinda like `docker build`. You provide it a build context that\ncontains a `Dockerfile` and `orca-build` does the rest. I plan to add support for\nsome more of the `docker build` flags in the near future, but at the moment it\nworks pretty well.\n\n```\nusage: orca-build [-h] [--clean] [--gc] [--output OUTPUT] [--verbose]\n                  [--rootless] [--build-arg NAME=value] [-t TAGS]\n                  ctx\n\nBuild an OCI image from a Dockerfile context. Rootless containers are also\nsupported out-of-the-box.\n\npositional arguments:\n  ctx                   Build context which is used when referencing host\n                        files. Files outside the build context cannot be\n                        accessed by the build script.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --clean               Remove all intermediate image tags after successful\n                        build.\n  --gc                  Run a final garbage collection on output image.\n  --output OUTPUT       Path of OCI image to output to (if unspecified, a new\n                        image is created in /tmp).\n  --verbose             Output debugging information.\n  --rootless            Enable rootless containers mode.\n  --build-arg NAME=value\n                        Build-time arguments used in conjunction with ARG.\n  -t TAGS, --tag TAGS   Tag(s) of the output image (by default, randomly\n                        generated).\n```\n\nHere's an example session of building a standard `Dockerfile`:\n\n```\n% orca-build -t some-tag .\norca-build[INFO] BUILD[1 of 2]: from ['opensuse/amd64:42.2'] [json=False]\norca-build[INFO] Created new image for build: /tmp/orca-build.r2xp0v8h\n  ---\u003e [skopeo]\nGetting image source signatures\nCopying blob sha256:ed6542b73fb1330e3eee8294a805b9a231e30b3efa71390f938ce89f210db860\n 47.09 MB / 47.09 MB [=========================================================]\nCopying config sha256:56fae18e2688b7d7caf2dd39960f0e6fda4383c174926e2ee47128f29de066cf\n 0 B / 805 B [-----------------------------------------------------------------]\nWriting manifest to image destination\nStoring signatures\n  \u003c--- [skopeo]\norca-build[INFO] BUILD[2 of 2]: run ['echo', 'Hello orca-build!', '\u0026\u0026', 'cat', '/etc/os-release'] [json=False]\n  ---\u003e [umoci]\n  \u003c--- [umoci]\n  ---\u003e [runc]\nHello orca-build!\nNAME=\"openSUSE Leap\"\nVERSION=\"42.2\"\nID=opensuse\nID_LIKE=\"suse\"\nVERSION_ID=\"42.2\"\nPRETTY_NAME=\"openSUSE Leap 42.2\"\nANSI_COLOR=\"0;32\"\nCPE_NAME=\"cpe:/o:opensuse:leap:42.2\"\nBUG_REPORT_URL=\"https://bugs.opensuse.org\"\nHOME_URL=\"https://www.opensuse.org/\"\n  \u003c--- [runc]\n  ---\u003e [umoci]\n  \u003c--- [umoci]\norca-build[INFO] BUILD: finished\n  ---\u003e [umoci]\n  \u003c--- [umoci]\norca-build[INFO] BUILD: created tags ['some-tag']\n```\n\n### Installation ###\n\nI don't know how to do the whole \"installation\" thing with Python, so here's\nhow you install `orca-build`. It only depends on the standard library (and\nhaving the above tools in your `$PATH`).\n\n```\n% sudo make install\n```\n\nIf you want to make sure that `umoci`, `skopeo` and `runc` will play nicely\ntogether, you can use `make check`. It will attempt to run through a trivial\nusage of rootless containers with the tools above. If this fails, update your\ninstallation accordingly. This tweaking should not be necessary in future\nversions.\n\n```\n% make check\n```\n\nI've only tested it with Python 3.6, but it should work with most modern Python\n3 versions.\n\n### License ###\n\n`orca-build` is licensed under the terms of the GPLv3 (or later).\n\n```\norca-build: container image builder\nCopyright (C) 2017 SUSE LLC\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyphar%2Forca-build","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcyphar%2Forca-build","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyphar%2Forca-build/lists"}