Juju Box is a docker container project that provides a configured Juju environment with all the tools you need to work with Juju.
Juju is an open source, universal model for applications. Juju allows you to deploy, configure, manage, maintain, and scale cloud services quickly and efficiently on public clouds, as well as on physical servers.
This container comes with the basic tools you need to get started with Juju.
The charmbox container starts with jujubox and adds the functionality of charm-tools and bundletester.
Install Docker using the package manager for your Linux distribution, or get.docker.com. We recommend Docker version 1.6 or greater.
There are several ways to install Docker on Mac OS X. Consult the latest documentation on Getting Started with Docker for Mac.
If you want to see the code you can download the jujubox project from github and build it from source.
git clone https://github.com/juju-solutions/jujubox.git && cd jujubox
docker build -t jujusolutions/jujubox ./
Or simply pull the jujubox container from the Docker hub.
docker pull jujusolutions/jujubox
There are several different ways to run jujubox depending on what you are trying to accomplish.
If you want to use Juju run the container in an interactive (-i) tty (-t)
session and use the command line. Since the container file system is reset each
time it is highly recommended to mount a volume (-v) from the host system to
the $JUJU_DATA
directory. This will allow any Juju data to persist between
runs of jujubox:
docker run --rm -it \
-v $JUJU_DATA:/home/ubuntu/.local/share/juju \
jujusolutions/jujubox
If you already have charms on the host machine, you can also mount the
$JUJU_REPOSITORY
directory so jujubox can deploy local charms.
docker run --rm -it \
-v $JUJU_DATA:/home/ubuntu/.local/share/juju \
-v $JUJU_REPOSITORY:/home/ubuntu/charms \
jujusolutions/jujubox
See the Environment Variables
reference
for more information on the paths for $JUJU_DATA
and $JUJU_REPOSITORY
.
At this time you can not run jujubox on the LXD provider inside of Docker because of some nested container issues. If you want to use the LXD provider install Juju and LXD on the host system.
For more information about what you can do in jujubox check out the Juju documenation.
If you find any bugs please create an issue in the jujubox github repository.