What is Atomic App?
Atomic App is a reference implementation of the Nulecule Specification. It can be used to bootstrap container applications and to install and run them. Atomic App is designed to be run in a container context.
Examples using this tool may be found in the Nulecule examples library.
Getting Started
Atomic App itself is packaged as a container. End-users typically do not install the software from source. Instead using the atomicapp container as the FROM line in a Dockerfile and packaging your application on top. For example:
FROM projectatomic/atomicapp
MAINTAINER Your Name <you@example.com>
ADD /nulecule /Dockerfile README.md /application-entity/
ADD /artifacts /application-entity /artifacts
For more information see the extensive Atomic App getting started guide which goes over in detail on how to build your first Atomic App container.
Running your first Nulecule
Install Atomic App
Clone the github repository
git clone https://github.com/projectatomic/atomicapp
cd atomicapp
Install it:
sudo make install
Running Atomic App
This will run a helloworld example using the centos/apache container image on Kubernetes:
sudo atomicapp run projectatomic/helloapache
Same with Docker:
sudo atomicapp run projectatomic/helloapache --provider=docker
Fetching, modifying and running an Atomic App
Fetch a Nuleculized container, modify the answers file and launch it.
atomicapp fetch projectatomic/helloapache --destination helloapache
cd helloapache
cp answers.conf.sample answers.conf # Modify then copy
answers.conf.sample
atomicapp run .
Commands
atomicapp {run,fetch,stop,genanswers,init} APP|PATH [--dry-run] [-a answers.conf] [-v] [--namespace foo] [--destination foo]
Pulls the application and it’s dependencies. If the last argument is an existing path, it looks for Nulecule file there instead of pulling the container.
--destination DST_PATHUnpack the application into given directory instead of current directoryAPPName of the image containing the application (f.e.vpavlin/wp-app)PATHPath to a directory with installed (i.e. result ofatomicapp install ...) app--dry-runPerforms a faux command of Atomic App to simulate a deployment scenario-a answers.confProvide an answers.conf file when deploying a container--namespace fooUse a particular namespace for a specific provider (specifically, k8s and openshift)
Providers
Atomic App currently supports the following providers:
- Kubernetes
- OpenShift
- Marathon
- Docker
Contribution
Interested in contributing? We have an awesome development guide to get you started!
Communication channels
Interested in Atomic App? We’d love to hear from you about your use of Atomic App and work together on improving it.
- IRC: #nulecule on irc.freenode.net
- Mailing List: container-tools@redhat.com
- Weekly IRC Nulecule meeting: Monday’s @ 0930 EST / 0130 UTC
- Weekly SCRUM Container-Tools meeting: Wednesday’s @ 0830 EST / 1230 UTC on Bluejeans