This repository has been archived by the owner on Jan 19, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 70
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
19 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,23 @@ | ||
# Atomic App | ||
|
||
Atomic App is a reference implementation of the [Nulecule Specification](http://www.projectatomic.io/docs/nulecule/). 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 directory](https://github.com/projectatomic/nulecule/tree/master/examples). | ||
Atomic App is a reference implementation of the [Nulecule specification](https://github.com/projectatomic/nulecule). It can be used to bootstrap packaged container environments and then run them. Atomic App is designed to be ran within a container. | ||
|
||
Examples of this tool may be found within the [Nulecule library repo](https://github.com/projectatomic/nulecule/tree/master/examples). | ||
|
||
## Getting Started | ||
|
||
Atomic App is packaged as a container. End-users typically do not install the software from source. Instead use the atomicapp container as the `FROM` line in a Dockerfile and package your application on top. For example: | ||
Atomic App itself is packaged as a container. End-users typically do not install the software from source. Instead use the `atomicapp` container as the `FROM` line in a Dockerfile and package your application on top. For example: | ||
|
||
``` | ||
FROM projectatomic/atomicapp:0.4.1 | ||
FROM projectatomic/atomicapp | ||
MAINTAINER Your Name <[email protected]> | ||
ADD /Nulecule /Dockerfile README.md /application-entity/ | ||
ADD /artifacts /application-entity/artifacts | ||
``` | ||
|
||
For more information see the [Atomic App getting started guide](http://www.projectatomic.io/docs/atomicapp/). | ||
For more information see the [Nulecule getting started guide](https://github.com/projectatomic/nulecule/blob/master/docs/getting-started.md). | ||
|
||
## Developers | ||
|
||
|
@@ -25,7 +27,7 @@ First of all, clone the github repository: `git clone https://github.com/project | |
Simply run | ||
|
||
``` | ||
pip install . | ||
make install | ||
``` | ||
|
||
If you want to do some changes to the code, I suggest to do: | ||
|
@@ -36,36 +38,35 @@ export PYTHONPATH=`pwd`:$PYTHONPATH | |
alias atomicapp="python `pwd`/atomicapp/cli/main.py" | ||
``` | ||
|
||
### Build | ||
### Build an Atomic App | ||
``` | ||
docker build -t [TAG] . | ||
``` | ||
|
||
Just a call to Docker to package up the application and tag the resulting image. | ||
Use 'docker build' to package up the application and tags the resulting image. | ||
|
||
### Install and Run | ||
### Fetch and run | ||
``` | ||
atomicapp [--dry-run] [-a answers.conf] install|run [--recursive] [--update] [--destination DST_PATH] APP|PATH | ||
atomicapp [--dry-run] [-v] [-a answers.conf] fetch|run|stop|genanswers [--provider docker] [--destination DST_PATH] APP|PATH | ||
``` | ||
|
||
Pulls the application and it's dependencies. If the last argument is | ||
Pulls the application and its dependencies. If the last argument is | ||
existing path, it looks for `Nulecule` file there instead of pulling anything. | ||
|
||
* `--recursive yes|no` Pull whole dependency tree | ||
* `--update` Overwrite any existing files | ||
* `--provider docker` Use the Docker provider within the Atomic App | ||
* `--destination DST_PATH` Unpack the application into given directory instead of current directory | ||
* `APP` Name of the image containing the application (f.e. `vpavlin/wp-app`) | ||
* `PATH` Path to a directory with installed (i.e. result of `atomicapp install ...`) app | ||
* `APP` Name of the image containing the application (ex. `projectatomic/apache-centos7-atomicapp`) | ||
* `PATH` Path to a directory with installed (ex. result of `atomicapp fetch...`) app | ||
|
||
Action `run` performs `install` prior its own tasks are executed if `APP` is given. When `run` is selected, providers' code is invoked and containers are deployed. | ||
Action `run` performs `fetch` prior to its own tasks if an `APP` is provided. Otherwise, it will use its respective `PATH`. When `run` is selected, providers' code is invoked and containers are deployed. | ||
|
||
## Providers | ||
|
||
Providers represent various deployment targets. They can be added by placing a file called `provider_name.py` in `providers/`. This file needs to implement the interface explained in (providers/README.md). For a detailed description of all providers available see the [Provider description](docs/providers.md). | ||
Providers represent various deployment targets. They can be added by placing the artifact within the respective in `provider/` folder. For example, placing `deploy_pod.yml` within `providers/kubernetes/`. For a detailed description of all providers available see [docs/providers.md](docs/providers.md). | ||
|
||
## Dependencies | ||
|
||
Please see [REQUIREMENTS](https://github.com/projectatomic/atomicapp/blob/master/docs/requirements.md) for current Atomic App dependencies. | ||
See [REQUIREMENTS](https://github.com/projectatomic/atomicapp/blob/master/docs/requirements.md) for current Atomic App dependencies. | ||
|
||
##Communication channels | ||
|
||
|
@@ -82,7 +83,7 @@ Please see [REQUIREMENTS](https://github.com/projectatomic/atomicapp/blob/master | |
|
||
# Copyright | ||
|
||
Copyright (C) 2015 Red Hat Inc. | ||
Copyright (C) 2016 Red Hat Inc. | ||
|
||
This program is free software: you can redistribute it and/or modify | ||
it under the terms of the GNU Lesser General Public License as published by | ||
|