{"id":13502830,"url":"https://github.com/projectatomic/adb-atomic-developer-bundle","last_synced_at":"2025-03-29T12:33:02.249Z","repository":{"id":23757551,"uuid":"27131923","full_name":"projectatomic/adb-atomic-developer-bundle","owner":"projectatomic","description":"a prepackaged development environment filled with production-grade pre-configured tools that makes container development easier","archived":true,"fork":false,"pushed_at":"2017-01-24T06:59:33.000Z","size":513,"stargazers_count":82,"open_issues_count":69,"forks_count":51,"subscribers_count":18,"default_branch":"master","last_synced_at":"2024-08-01T22:57:44.890Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/projectatomic.png","metadata":{"files":{"readme":"README.adoc","changelog":"CHANGELOG.adoc","contributing":"CONTRIBUTING.adoc","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-25T15:24:10.000Z","updated_at":"2023-10-08T09:24:30.000Z","dependencies_parsed_at":"2022-08-22T05:50:29.681Z","dependency_job_id":null,"html_url":"https://github.com/projectatomic/adb-atomic-developer-bundle","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectatomic%2Fadb-atomic-developer-bundle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectatomic%2Fadb-atomic-developer-bundle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectatomic%2Fadb-atomic-developer-bundle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/projectatomic%2Fadb-atomic-developer-bundle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/projectatomic","download_url":"https://codeload.github.com/projectatomic/adb-atomic-developer-bundle/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222495226,"owners_count":16993288,"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-07-31T22:02:26.273Z","updated_at":"2024-10-31T22:30:56.011Z","avatar_url":"https://github.com/projectatomic.png","language":"Ruby","readme":"= Atomic Developer Bundle\n:toc:\n:toc-placement!:\n\nAtomic Developer Bundle (ADB) is a prepackaged development environment\nfilled with production-grade, pre-configured tools, that makes container\ndevelopers' lives easier. ADB supports the development of\nmulti-container applications against different technologies and\norchestrators while providing a path that promotes best practices.\n\n'''\ntoc::[]\n'''\n[[advantages]]\n== Advantages of ADB\n\nAs a container developer, you want to use ADB for these reasons:\n\n* **Pre-Configured**: You don't have to spend time building an\nenvironment and fighting configuration battles.\n\n* **Multiple Environment Support**: ADB works on Windows, Linux and Mac\nOS X. ADB supports several orchestrators (OpenShift, Kubernetes, Mesos,\nand plain Docker). ADB is language independent and supports multiple\ndeveloper models (IDE, CLI, SSH containment).\n\n* **Production-Grade**: The components of ADB are configured to behave\njust as they will in production. Containers promise seamless delivery,\nbut only if you test them in the right environment. This is that\nenvironment.\n\n* **Self-Contained**: ADB is ready to go once installed. It comes\nprepackaged with the most common components ready, in case they are\nneeded.\n\n* **Open Source**: ADB leverages existing tools and technologies\nwherever possible to avoid pushing a developer into an environment that\nwon't be supportable in production or that is tied to a single vendor.\nThis also means it benefits from the stability of existing projects\ninstead of reinventing the wheel.\n\nADB is a virtual machine that is executed with Vagrant and some Vagrant\nplugins.\n\n[[when-to-use]]\n== When would ADB typically be used?\n\nA developer begins using ADB, in most cases, once they have a working\napplication that has been decomposed into micro-services. They then\nfollow this general outline of steps:\n\n. Consider ways to divide your application into its component services\nor micro-services. For standard pieces, such as web servers, consider\nusing pre-built containers from trusted sources. For truly unique\npieces, build a custom container.\n\n. Confirm the application works in ADB by manually launching the\napplication's container components or by using the instance of OpenShift\nin the container to launch the application.\n\n. Build orchestration configurations that provide scaling and other\nrequired features, or complete the OpenShift application configuration.\nAlternatively, build a Nulecule description of the application.\n\n. Test the application.\n\nThe http://docs.projectatomic.io/container-best-practices/[Container\nBest Practices] document in this project may also be of interest.\n\n[[typical-usage-pattern]]\n== What is the typical usage pattern?\n\nADB supports three basic modes of usage. The modes vary by how much they\nrely on tools on the developer's workstation. From most to least\nreliant, they are:\n\n* Host-based IDE Mode\n+\nThis mode uses ADB as a server resource for host-based IDE tools. In\nthis mode, the user will run `eclipse` or other IDE tools that will\naccess the resources of ADB.\n\n* Host-based CLI Mode\n+\nThis mode uses ADB as a server resource for host-based CLI tools. In\nthis mode, the user will run `docker` and other CLI tools on their\nworkstation and the result will be containers executed inside of ADB.\n\n* SSH Mode\n+\nThis mode uses ADB as a Linux virtual machine. The user will use the\n`ssh` command to log into ADB and will directly execute `docker` and\nother commands from the command line. This is similar to having\ninstalled a Linux virtual machine and then installing and configuring\nall of the software ADB ships with.\n\nMore information about link:docs/using.adoc[using ADB] is available.\n\n[[adb-related-projects]]\n== What does ADB utilize?\n\nADB is built on top of https://www.centos.org/[CentOS 7] and the\nfollowing projects:\n\n* https://www.docker.com/[Docker]: container runtime and packaging\n\n* https://github.com/projectatomic/atomic/[Atomic CLI]: container usage\nassistance\n\n* http://kubernetes.io/[Kubernetes]: container orchestration\n\n* http://www.openshift.org/[OpenShift Origin]: a next generation PaaS\nfor docker containers\n\n* https://github.com/projectatomic/openshift2nulecule/[openshift2nulecule]:\na tool that creates a Nulecule application from an existing OpenShift\nproject\n\n* https://mesosphere.github.io/marathon/[Mesos Marathon]: a\nproduction-grade container orchestration platform for Mesosphere's\nDatacenter Operating System (DCOS) and Apache Mesos\n\nADB supports https://github.com/projectatomic/atomicapp/[Atomic App], an\nimplementation of the multi-container application specification\nhttps://github.com/projectatomic/nulecule/[nulecule], for\nmulti-container applications.\n\nYou need to use the customized Vagrantfiles provided in ADB project to\nset up the above mentioned environments. For further details refer to\nthe Installation steps in the next section.\n\n[[quick-install-run]]\n== How do I install and run ADB?\n\nBelow is an installation overview using the most common options.\nDetailed link:docs/installing.adoc[installation instructions] are\navailable.\n\n. https://www.virtualbox.org/wiki/Downloads[Install VirtualBox] for\nyour operating system.\n\n. https://docs.vagrantup.com/v2/installation/index.html[Install\nVagrant] for your operating system.\n\n. Install the https://github.com/projectatomic/vagrant-service-manager[vagrant-service-manager],\nhttps://github.com/dustymabe/vagrant-sshfs[vagrant-sshfs], and https://github.com/vagrant-landrush/landrush[landrush]\nVagrant plugins.\n+\n----\n$ vagrant plugin install vagrant-service-manager vagrant-sshfs landrush\n----\nSome operating systems may need additional dependencies to be\ninstalled before you proceed with the installation of the vagrant\nplugins. For details refer to the detailed\nlink:docs/installing.adoc[Installation document].\n\n. Download the customized Vagrantfiles provided by the ADB project.\nThese Vagrantfiles will download ADB and automatically set up\nprovider-specific container development environments. They are listed\nbelow and more details are available in the\nlink:docs/installing.adoc[Installation document].\n+\nTo download ADB and set up a provider-specific container development\nenvironment:\n+\n.. Create a directory for the Vagrant box.\n+\n----\n$ mkdir directory \u0026\u0026 cd directory\n----\n\n.. Download any of the following vagrantfiles, to configure the\ndevelopment environment you need.\n* To configure a\nhttps://github.com/projectatomic/adb-atomic-developer-bundle/blob/master/components/centos/centos-docker-base-setup/Vagrantfile[Docker\nspecific container development environment] use:\n+\n----\n$ curl -sL https://raw.githubusercontent.com/projectatomic/adb-atomic-developer-bundle/master/components/centos/centos-docker-base-setup/Vagrantfile \u003e Vagrantfile\n----\n* To configure a\nhttps://github.com/projectatomic/adb-atomic-developer-bundle/blob/master/components/centos/centos-k8s-singlenode-setup/Vagrantfile[Kubernetes\nspecific container development environment] use:\n+\n----\n$ curl -sL https://raw.githubusercontent.com/projectatomic/adb-atomic-developer-bundle/master/components/centos/centos-k8s-singlenode-setup/Vagrantfile \u003e Vagrantfile\n----\n* To configure an\nhttps://github.com/projectatomic/adb-atomic-developer-bundle/blob/master/components/centos/centos-openshift-setup/Vagrantfile[OpenShift\nOrigin specific container development environment] use:\n+\n----\n$ curl -sL https://raw.githubusercontent.com/projectatomic/adb-atomic-developer-bundle/master/components/centos/centos-openshift-setup/Vagrantfile \u003e Vagrantfile\n----\n* To configure an\nhttps://github.com/projectatomic/adb-atomic-developer-bundle/blob/master/components/centos/centos-mesos-marathon-singlenode-setup/Vagrantfile[Apache\nMesos Marathon specific container development environment] use:\n+\n----\n$ curl -sL https://raw.githubusercontent.com/projectatomic/adb-atomic-developer-bundle/master/components/centos/centos-mesos-marathon-singlenode-setup/Vagrantfile \u003e Vagrantfile\n----\n\n. Start ADB.\n+\n----\nvagrant up\n----\n+\nThis will download ADB and set it up to work with the provider of\nchoice, for use with host-based tools or via `vagrant ssh`. You may wish\nto review the link:docs/using.adoc[Using Atomic Developer Bundle]\ndocumentation before starting ADB, especially if you are using\nhost-based tools.\n\n[[included-features]]\n== Which features are included?\n\nCurrently, the box provides the following:\n\n* Docker support to unsupported platforms (i.e. Microsoft Windows, Mac\nOS X, etc.)\n* Kubernetes orchestration for local testing of applications\n* Application definition using the Nulecule specification\n\nAdditional goals, objectives and work in progress can be found on the\nProject Atomic https://trello.com/b/j1rEolFe/container-tools[trello\nboard].\n\n[[deliverables]]\n== What are the deliverables and where are they delivered?\n\nADB is delivered as a Vagrant box for various (currently libvirt and\nVirtualBox) providers. The boxes are built using the CentOS powered\nhttps://wiki.centos.org/HowTos/CommunityBuildSystem[Community Build\nSystem]. Boxes are delivered via\nhttps://atlas.hashicorp.com/boxes/search[Hashicorp's Atlas] and are\navailable at\nhttp://cloud.centos.org/centos/7/vagrant/x86_64/images/[cloud.centos.org].\nThese boxes differ from existing Vagrant boxes for CentOS as they have\nspecific build requirements that are not enabled in those boxes.\n\n[[documentation]]\n== Documentation\n\n* link:docs/installing.adoc[Installing ADB]\n* link:docs/using.adoc[How to use ADB]\n** link:docs/cockpit.adoc[Using Cockpit with ADB]\n* link:docs/staging.adoc[Staging your application]\n* link:docs/troubleshooting.adoc[Troubleshooting ADB]\n* link:docs/updating.adoc[Updating ADB]\n* link:docs/building.adoc[Building the Vagrant box] for Developers\n\n[[contributing]]\n== Interested in Contributing to this project?\n\nWe welcome new ideas, suggestions, issues and pull requests. Want to be\nmore involved, join us:\n\n* Mailing List:\nhttps://www.redhat.com/mailman/listinfo/container-tools[container-tools@redhat.com]\n* IRC: #atomic and #nulecule on https://freenode.net/[freenode]\n* Weekly Standup/Review/Planning Meeting: Every Monday at 1300 UTC in\n#nulecule (https://freenode.net/[freenode]) for 0.5 hour. An agenda for\nthis meeting is maintained at https://titanpad.com/adbmeeting\n\nDocumentation is written using\nhttp://asciidoctor.org/docs/asciidoc-syntax-quick-reference/[ASCIIDoc].\nYou can create and edit content in your favorite text editor with\nhttp://asciidoctor.org/docs/editing-asciidoc-with-live-preview/[live preview].\n\nFor detailed information about contributing to the projects,\nsee link:CONTRIBUTING.adoc[how to contribute].\n\n[[additional-resources]]\n== Additional online resources\n\n* Using OpenShift in ADB:\nhttp://www.projectatomic.io/blog/2016/05/App-Development-on-OpenShift-using-ADB\n* Using Kubernetes in ADB:\nhttp://www.projectatomic.io/blog/2016/04/k8s-adb-usage/\n* Introduction to ADB from DevConf.cz 2016:\nhttps://www.youtube.com/watch?v=jxFw6qnGaRk\n* OpenShift in ADB Quickstart (video):\nhttps://www.youtube.com/watch?v=H58prwM3IbE\n","funding_links":[],"categories":["Ruby"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprojectatomic%2Fadb-atomic-developer-bundle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprojectatomic%2Fadb-atomic-developer-bundle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprojectatomic%2Fadb-atomic-developer-bundle/lists"}