{"id":34466104,"url":"https://github.com/containerbuildsystem/atomic-reactor","last_synced_at":"2026-03-15T15:03:55.401Z","repository":{"id":22195471,"uuid":"25527782","full_name":"containerbuildsystem/atomic-reactor","owner":"containerbuildsystem","description":"Simple python library for building docker images.","archived":false,"fork":false,"pushed_at":"2025-12-16T11:57:06.000Z","size":9058,"stargazers_count":138,"open_issues_count":14,"forks_count":62,"subscribers_count":12,"default_branch":"master","last_synced_at":"2026-02-18T04:57:06.438Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/containerbuildsystem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2014-10-21T14:45:11.000Z","updated_at":"2025-12-16T11:56:57.000Z","dependencies_parsed_at":"2023-02-17T09:01:02.283Z","dependency_job_id":"40e5d97a-1624-45bb-9506-ea8b502cd7f3","html_url":"https://github.com/containerbuildsystem/atomic-reactor","commit_stats":{"total_commits":3002,"total_committers":60,"mean_commits":50.03333333333333,"dds":0.8657561625582945,"last_synced_commit":"6614a70ad6f967198357188db7d6da25b92277e5"},"previous_names":["projectatomic/atomic-reactor","dbuildservice/dock"],"tags_count":154,"template":false,"template_full_name":null,"purl":"pkg:github/containerbuildsystem/atomic-reactor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/containerbuildsystem%2Fatomic-reactor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/containerbuildsystem%2Fatomic-reactor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/containerbuildsystem%2Fatomic-reactor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/containerbuildsystem%2Fatomic-reactor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/containerbuildsystem","download_url":"https://codeload.github.com/containerbuildsystem/atomic-reactor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/containerbuildsystem%2Fatomic-reactor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29827689,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T14:53:59.163Z","status":"ssl_error","status_checked_at":"2026-02-25T14:53:23.002Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2025-12-23T03:15:30.293Z","updated_at":"2026-02-25T15:29:22.891Z","avatar_url":"https://github.com/containerbuildsystem.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Atomic Reactor\n\n[![unittests status badge]][unittests status link]\n[![coveralls status badge]][coveralls status link]\n[![lgtm python badge]][lgtm python link]\n[![lgtm alerts badge]][lgtm alerts link]\n[![linters status badge]][linters status link]\n\nPython library with command line interface for building docker images.\n\n## Features\n\n- Push image to registry when it's built\n- Build inside a docker container (so your builds are separated between each\n  other)\n- git as a source to your Dockerfile (you may specify commit/branch and path to\n  Dockerfile within the git repo)\n- Collect build logs\n- Integration with [koji][] build system\n- Integration with [fedora packaging system][]\n- Inject arbitrary yum repo inside Dockerfile (change source of your packages)\n- Retag base image so it matches `FROM` instruction in Dockerfile\n- Change base image (`FROM`) in your Dockerfile\n- Run simple tests after your image is built\n\n## Installation\n\n### From git\n\nClone this git repo and install Atomic Reactor using python installer:\n\n```bash\ngit clone https://github.com/containerbuildsystem/atomic-reactor.git\ncd atomic-reactor\npip install . --user\n```\n\nYou don't even need to install it. You may use it straight from git:\n\n```bash\nexport PYTHONPATH=\"${REACTOR_PATH}:${PYTHONPATH}\"\nalias atomic-reactor=\"python ${REACTOR_PATH}/atomic-reactor/cli/main.py\"\n```\n\n### Adding Dependencies\n\nTo add more Python dependencies, add them to the following files:\n\n- [setup.py](setup.py)\n- [requirements.in](requirements.in)\n- [tests/requirements.in](tests/requirements.in) for test dependencies\n- [requirements-devel.in](requirements-devel.in) for dependencies that are\n  required during development\n\nIf you're wondering why you need to add dependencies to both files (setup.py\nand one of the requirements files), see [install_requires vs requirements\nfiles](https://packaging.python.org/discussions/install-requires-vs-requirements/).\n\nTo be able to build atomic-reactor with Cachito, we also need to keep the\nbuild requirements\nupdated. Please follow [Cachito pip build dependencies](https://github.com/release-engineering/cachito/blob/master/docs/pip.md#build-dependencies)\nfor updating build requirements. Please note that the resulting requirements\nwill need to be pinned to older versions before moving to the next step to\navoid installation issues with newer\ndependency versions.\n\nAfterwards, pip-compile the dependencies via `make pip-compile` (you may need to\nrun `make venv` first, unless the venv already exists).\n\nAdditionally, if any of the newly added dependencies in the generated\n`requirements*.txt` files need to be compiled from C code, please install any\nmissing C libraries in the Dockerfile(s) as well as the test.sh script\n\n- [Dockerfile](Dockerfile)\n- [test.sh](test.sh)\n\n## Running tests\n\nThe prerequisite of running tests is to create a test environment container by\n`test.sh`. For example:\n\n```bash\nOS=fedora OS_VERSION=35 PYTHON_VERSION=3 ACTION=test ./test.sh\n```\n\nWhen the container is ready and running, you have choice to test your changes\nby executing `pytest` directly:\n\n```bash\npodman exec -it atomic-reactor-fedora-35-py3 python3 -m pytest tests/\n```\n\nor by `tox`:\n\n```bash\npodman exec -it atomic-reactor-fedora-35-py3 tox -e test\n```\n\nThe `tox.ini` has defined several testenvs, use `tox -l` to check them.\n\n## Usage\n\nIf you would like to build your images within build containers, you need to\nobtain images for those containers. We call them build images. Atomic Reactor is\ninstalled inside and used to take care of build itself.\n\nYou can either get the build image from Dockerhub or create it yourself.\n\n## Further reading\n\n- [Plugins](https://github.com/containerbuildsystem/atomic-reactor/blob/master/docs/plugins.md)\n- [Plugin development](https://github.com/containerbuildsystem/atomic-reactor/blob/master/docs/plugin_development.md)\n- [API](https://github.com/containerbuildsystem/atomic-reactor/blob/master/docs/api.md)\n\n[coveralls status badge]: https://coveralls.io/repos/containerbuildsystem/atomic-reactor/badge.svg?branch=master\n[coveralls status link]: https://coveralls.io/r/containerbuildsystem/atomic-reactor?branch=master\n[lgtm python badge]: https://img.shields.io/lgtm/grade/python/g/containerbuildsystem/atomic-reactor.svg?logo=lgtm\u0026logoWidth=18\n[lgtm python link]: https://lgtm.com/projects/g/containerbuildsystem/atomic-reactor/context:python\n[lgtm alerts badge]: https://img.shields.io/lgtm/alerts/g/containerbuildsystem/atomic-reactor.svg?logo=lgtm\u0026logoWidth=18\n[lgtm alerts link]: https://lgtm.com/projects/g/containerbuildsystem/atomic-reactor/alerts\n[linters status badge]: https://github.com/containerbuildsystem/atomic-reactor/workflows/Linters/badge.svg?branch=master\u0026event=push\n[linters status link]: https://github.com/containerbuildsystem/atomic-reactor/actions?query=event%3Apush+branch%3Amaster+workflow%3A%22Linters%22\n[unittests status badge]: https://github.com/containerbuildsystem/atomic-reactor/workflows/Unittests/badge.svg?branch=master\u0026event=push\n[unittests status link]: https://github.com/containerbuildsystem/atomic-reactor/actions?query=event%3Apush+branch%3Amaster+workflow%3A%22Unittests%22\n[koji]: https://github.com/containerbuildsystem/atomic-reactor/blob/master/docs/koji.md\n[fedora packaging system]: http://fedoraproject.org/wiki/Package_maintenance_guide\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontainerbuildsystem%2Fatomic-reactor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcontainerbuildsystem%2Fatomic-reactor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontainerbuildsystem%2Fatomic-reactor/lists"}