UNKNOWN
Project description
Skeppa
A docker deployment tool built in python. It is based on fabric and uses docker-compose to orchestrate and manage containers.
Requirements
To install Skeppa you need Python 2.7, docker and docker-compose.
Installation
Stable
pip install skeppa
Develop
pip install git+git://github.com/marteinn/skeppa.git@develop
Getting started
First off, head to your project and install skeppa: pip install skeppa.
Time to setup deployment instructions. This simple example below will try to build a image called app, push to registry, then deploy on remote machine using the docker-compose file.
touch skeppa.yaml
In your skeppa.yaml, add the following:
prod: project: test-project hosts: ssh.yourhost.com user: ssh-user path: /home/youruser/yourproject/ key_filename: ~/.ssh/id_rsa.pub image: name: app path: app repository: url: registry.mydomain.com/app-image compose_files: docker-compose.yml
(This example requires docker image called ``app`` in your project folder, a working docker repository and a working ``docker-compose.yml``).
Want a full annotated `skeppa.yaml <https://github.com/marteinn/Skeppa/blob/develop/skeppa.annotated.yaml>`__?
Now run skeppa prod setup, this will upload docker-compose.yml to your prod path.
Time to build and push your docker image, skeppa prod build
Now when the image has been built and is in your repository, type skeppa prod deploy to deploy the image on your remote machine.
Done!
Want more examples?
FAQ
How can I supply env-variables to skeppa?
Since skappa is based on fabric just add -c yourfile.env when running your command. Skeppa will by default try load either skeppa.env, fabricrc.txt or .fabricrc from your cwd.
How can I include env-variables in my skeppa.yaml?
Just define your variables like this {{ MY_VAR }}. Example: host: {{ HOST }}.
Usage
The tool consists of 4 commands, they can run in conjunction with eachother.
Command |
Description |
Example |
---|---|---|
setup |
Initializes you application by creating the necessary directories/files. Must run first |
skeppa <environment> setup |
build |
Builds docker images specified in config |
skeppa <environment> build |
push |
Pushes docker image to registry |
skeppa <environment> push |
deploy |
Pulls down docker image on remote and runs docker-compose up |
skeppa <environment> deploy |
Skeppa?
The name is a wordplay with the swedish word for “to ship” = “skeppa”.
Credits/refefences
Contributing
Want to contribute? Awesome. Just send a pull request.
License
Skeppa is released under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.