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 details)

Uploaded Source

File details

Details for the file skeppa-1.2.0.tar.gz.

File metadata

  • Download URL: skeppa-1.2.0.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for skeppa-1.2.0.tar.gz
Algorithm Hash digest
SHA256 dacdef8ecf468340b996c837b55be58d0920184506fb446fb5637f725d6ea78a
MD5 726d698000ae47b4d542407732c884c3
BLAKE2b-256 e131ff4591fd4fc0fbdd908556f7ccc8c218dc1a0877f7a38b81d66abe8bd8ac

See more details on using hashes here.

Supported by

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