Some useful command line utility to wait until all services declared in a docker-compose file are up and running.
Project description
docker-compose-wait
Some useful script to wait until all services declared in a docker-compose file are up and running.
This script uses the health check mechanism provided since Docker 1.12. If your services have a configured health check, after making a docker-compose up -d you can simply call this script to have it wait until all your services health statuses are fixed. If they are all healthy it will return 0 if any of them is unhealthy (or Down) it will return -1.
This script can be useful, as example, in Continuous Integration or other situations when you just want to wait until a stack is deployed before performing other actions.
Please note this script does not do anything about dependencies startup order. See the official documentation for that problem.
Installation
pip install docker-compose-wait
This utility requires Python 2.7 or Python >= 3.3. It also supports docker-compose from version 1.10.
Usage
usage: docker-compose-wait.py [options]
Wait until all services in a docker-compose file are healthy. Options are
forwarded to docker-compose.
optional arguments:
-h, --help show this help message and exit
-f FILE, --file FILE Specify an alternate compose file (default: docker-
compose.yml)
-p PROJECT_NAME, --project-name PROJECT_NAME
Specify an alternate project name (default: directory
name)
-w, --wait Wait for all the processes to stabilize before exit
(default behavior is to exit as soon as any of the
processes is unhealthy)
-t TIMEOUT, --timeout TIMEOUT
Max amount of time during which this command will run
(expressed using the same format than in docker-
compose.yml files, example: 5s, 10m,... ). If there is
a timeout this command will exit returning 1.
(default: wait for an infinite amount of time)
-l, --log-print Whether to print docker healthcheck output for
unhealthy services
Basically it can be as simple as:
docker-compose-wait
docker-compose-wait behaves like a docker-compose sub-command. It will forward the usual docker-compose command-line arguments. The above command will work fine if you previously ran docker-compose up -d by referencing the standard docker-compose.yml file. If you are using other files for your docker-compose configuration just use:
docker-compose-wait -f <path_to_yaml_file> -f <path_to_other_yaml_file> ...
Running tests
python -m pip install -r requirements.txt # install dependencies
brew install bats-core # install test runner
bats tests.bats # run tests
License
Contribution
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file docker-compose-wait-cksource-1.3.0.tar.gz.
File metadata
- Download URL: docker-compose-wait-cksource-1.3.0.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6d7014972bd70afe9f0dfad0837b542466cdc3d3cc252b3cb911fdc183bee22
|
|
| MD5 |
3bb5bb5670c9866281c80501a4582dff
|
|
| BLAKE2b-256 |
7e7e599c425368526c7b06fa7b1ea1ac19c981a81f8770e9297175a8570c1b7a
|
File details
Details for the file docker_compose_wait_cksource-1.3.0-py3-none-any.whl.
File metadata
- Download URL: docker_compose_wait_cksource-1.3.0-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5fd44da9f863abdc4e5be358c1e0a7634c0ef4619420211f6839709d3341452
|
|
| MD5 |
0286dc2b8e964ccb67d775974694fafe
|
|
| BLAKE2b-256 |
a824f4f1b420b8d13d9c036c9dad159e67b6cf899559fdaf2769dfeb9b592691
|