Wrap docker-compose to acheive dev-perfect CI
Project description
compoctl backup
Backup data into ./backup.
Example configuration that makes it work as-is:
volumes: - ./backup/postgres:/backup labels: io.compoctl.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.
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: compoctl.restore: 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.
compoctl apply
Chain pull/down/up/logs/ps:
compoctl -f ./foo.yml apply # will run: docker-compose -f ./foo.yml pull 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
Development status
POC working, will need tweaking to support more complex operations. The objective is to stabilize the commands before proposing them upstream to docker-compose.
Install
Install with pip: pip install compoctl
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file compoctl-0.1.2.post2.tar.gz
.
File metadata
- Download URL: compoctl-0.1.2.post2.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 242e9f9b6abfd45ee2aef91e7ea1f2aabd24d6ed1c09ebd1765ca58a8545b493 |
|
MD5 | 6e70375a2933980100f074fa026cc02d |
|
BLAKE2b-256 | d720d1f4e5e16adb528235003fc141580999afb7b513c0b2099f1d0d5359d924 |