Skip to main content

UNKNOWN

Project description

PyPI version

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.

  1. touch skeppa.yaml

  2. 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>`__?

  3. Now run skeppa prod setup, this will upload docker-compose.yml to your prod path.

  4. Time to build and push your docker image, skeppa prod build

  5. Now when the image has been built and is in your repository, type skeppa prod deploy to deploy the image on your remote machine.

  6. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skeppa-1.2.0.tar.gz (9.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page