Skip to content

roomnoise/compose-flow

 
 

Repository files navigation

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

build:
  # the image prefix can be your Docker Hub username or a private registry address
  image_prefix: myprivateregistry.com

Remotes

remotes:
  local:
    backend: swarm
  test:
    backend: rancher
    rancher:
      project: Ops
      cluster: prod
  dev:
    backend: rancher
  prod:
    backend: rancher

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

About

Codified workflows for Docker Compose and Swarm

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 98.3%
  • Dockerfile 1.2%
  • Shell 0.5%