Skip to main content

Install with pip install compoctl

A wrapper for the long docker-compose command that also adds a few features that should be considered experimental, in waiting for refutation or upstream contribution - which won’t break BC because compoctl decorates docker-compose commands.

compoctl apply: the one-liner pipeline for docker-compose

Chain pull/build/down/up/logs/ps, nice to have for hacking and even more in automated deploys:

compoctl -f ./foo.yml apply

# will run:
docker-compose -f ./foo.yml pull
docker-compose -f ./foo.yml build
docker-compose -f ./foo.yml down
docker-compose -f ./foo.yml up -d
docker-compose -f ./foo.yml logs
docker-compose -f ./foo.yml ps

compoctl backup

Backup data into ./backup.

Example configuration that makes it work as-is:

volumes:
- ./backup/postgres:/backup
labels:
  io.yourlabs.backup.cmd: pg_dumpall -U postgres -f /backup/data.dump

This will dump pg data into ./backup/postgres, and also export docker-compose running config into ./backup/docker-compose.restore.yml

It will also execute the docker-compose.backup.yml if it exists. This is were you can spawn a container that mounts ./backup and proceeds to the secure backup export over the network that you want for production.

To prevent permission issues, containers should at no time write the ./backup directory itself.

pre-POC state: waiting for an example chaining a docker-compose.backup.yml that would spawn restic and rclone to backup the backup on a remote collection (or implement retention policy feature into duplicity).

compoctl restore

Copy docker-compose.yml back from ./backup and run restore commands.

This is a destructive operation that will delete all volumes except the backup volume, up each service one by one and apply the restore command.

Example configuration that makes it work as-is:

volumes:
- ./backup/postgres:/backup
labels:
  io.yourlabs.restore.cmd: psql -U postgres -f /backup/data.dump

Note that the ./backup directory must have been provisioned with the backup command priorly.

Also, the cluster will be unusable/down during the restore operation.

Metadata

Release files for compoctl 0.2.1.post3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for compoctl 0.2.1.post3
File Size Uploaded
compoctl-0.2.1.post3.tar.gz 4.9 kB Details

Release files / compoctl-0.2.1.post3.tar.gz

Download URL compoctl-0.2.1.post3.tar.gz
Size 4.9 kB
Tags Source
SHA-256 checksum
How to use checksums
8cb48f1f585b7b060ebe41d71b37ab806b5f0e6f25334e9dd0df154095c8e73d
BLAKE2b-256 checksum
How to use checksums
7b744d5788242401bcd0dd97e1e891622908f4be4739db295bf034fcdf506cde
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8

Release history Release notifications | RSS feed

This release

0.2.1.post3 This release

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page