Skip to main content

docker-compose-wait

Build Status PyPI

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

See the license file.

Contribution

See the contribution guide.

Release files for docker-compose-wait-cksource 1.3.0

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

Source distribution (sdist)

Source distribution for docker-compose-wait-cksource 1.3.0
File Size Uploaded
docker-compose-wait-cksource-1.3.0.tar.gz 8.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for docker-compose-wait-cksource 1.3.0
File Interpreter ABI Platform
docker_compose_wait_cksource-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 16.0 kB

Release files / docker-compose-wait-cksource-1.3.0.tar.gz

Download URL docker-compose-wait-cksource-1.3.0.tar.gz
Size 8.4 kB
Tags Source
SHA-256 checksum
How to use checksums
e6d7014972bd70afe9f0dfad0837b542466cdc3d3cc252b3cb911fdc183bee22
BLAKE2b-256 checksum
How to use checksums
7e7e599c425368526c7b06fa7b1ea1ac19c981a81f8770e9297175a8570c1b7a
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / docker_compose_wait_cksource-1.3.0-py3-none-any.whl

Download URL docker_compose_wait_cksource-1.3.0-py3-none-any.whl
Size 7.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e5fd44da9f863abdc4e5be358c1e0a7634c0ef4619420211f6839709d3341452
BLAKE2b-256 checksum
How to use checksums
a824f4f1b420b8d13d9c036c9dad159e67b6cf899559fdaf2769dfeb9b592691
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 release files

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