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
pip install compose-flow
Create the file ~/.compose/config.yml
with the following sections.
build:
# the image prefix can be your Docker Hub username or a private registry address
image_prefix: myprivateregistry.com
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.
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