/compose-flow

Codified workflows for Docker Compose and Swarm

Primary LanguagePythonApache License 2.0Apache-2.0

Compose Flow

This utility is built on top of Docker Compose and Swarm Mode. It establishes workflow conventions that are easily shared between team members -- and butlers -- who need to manage and deploy services, including:

  • managing Stacks across multiple Swarms (e.g. separate dev and prod Swarms)
  • connecting to and working with service containers
  • building and publishing images
  • sharing service configuration between team members

Installation

pip install compose-flow

Compose-Flow configuration

Create the file ~/.compose/config.yml with the following sections.

  • Build
  • Remotes
  • Options (for local dev)

ex:

build:
  image_prefix: registry.osslabs.net
remotes:
  test:
    backend: rancher
    rancher:
      project: Ops
      cluster: prod
  dev:
    backend: rancher
  prod:
    backend: rancher
options:
  local:
    dirty_working_copy_okay: True    

With this in place you're ready to go onto your project setup.

A basic example

This is the most basic file to get started.

Place this at compose/compose-flow.yml in your project directory:

profiles:
  local:
    - docker-compose.yml

Alongside it, place the file compose/docker-compose.yml:

version: '3.7'
services:
  app:
    build: ..
    image: ${DOCKER_IMAGE}

For building, run: compose-flow build.

For publishing: compose-flow publish.

For deploying as configured above: compose-flow -e local deploy.

More information at docs/advanced.md