docker-compose-just-quieter

Docker Compose CLI utility wrapper which makes `docker-compose` quieter


Keywords
docker, docker-compose
License
Apache-2.0
Install
pip install docker-compose-just-quieter==0.1

Documentation

Docker Compose, just quieter

Docker Compose CLI utility wrapper which makes docker-compose quieter.

This Docker Compose CLI utility wrapper allows users to hide Starting <...> / Stopping <...> and similar messages from docker-compose's output.

Docker Compose is overly verbose when starting containers for a service:

$ docker-compose --project-name test run --rm test_service bash
Creating network "test-bash_default" with the default driver
Creating test-bash_postgresql-server_1         ... done
Creating test-bash_solr-zookeeper_1            ... done
Creating test-bash_extract-article-from-page_1 ... done
Creating test-bash_rabbitmq-server_1           ... done
Creating test-bash_solr-shard-01_1             ... done
Creating test-bash_import-solr-data-for-testing_1 ... done

$ docker-compose --project-name test down --volumes
Stopping test-bash_import-solr-data-for-testing_1 ... done
Stopping test-bash_solr-shard-01_1                ... done
Stopping test-bash_postgresql-server_1            ... done
Stopping test-bash_solr-zookeeper_1               ... done
Stopping test-bash_extract-article-from-page_1    ... done
Stopping test-bash_rabbitmq-server_1              ... done
Removing test-bash_import-solr-data-for-testing_1 ... done
Removing test-bash_solr-shard-01_1                ... done
Removing test-bash_postgresql-server_1            ... done
Removing test-bash_solr-zookeeper_1               ... done
Removing test-bash_extract-article-from-page_1    ... done
Removing test-bash_rabbitmq-server_1              ... done
Removing network test-bash_default

Setting --log-level to WARNING doesn't seem to help, and multiple issues and PRs to address the issue have been unsuccessful so far:

This wrapper monkey-patches ParallelStreamWriter for it to take into account --log-level setting and make the output quieter, and then runs Compose's CLI normally.

Why it's cool to use

  • This is not a fork, so the utility should work with newer versions of Compose as long as ParallelStreamWriter interface remains the same as it was at the time of writing this hack. So far, it's been tested with docker-compose version 1.25.0 and Python 3.7.
  • It doesn't have any third party dependencies (except for Docker Compose itself of course).
  • It doesn't have to be installed, you can just add this repository as a submodule to your project, or copy-paste the docker-compose-just-quieter script somewhere. With that said, you can pip3 install docker-compose-just-quieter too if you feel like it.

Usage

  1. Install Docker Compose using your favourite method, e.g.:
$ pip3 install docker-compose
  1. Place docker-compose-just-quieter script somewhere in your PATH, or add directory with docker-compose-just-quieter to your PATH.

  2. Use docker-compose-just-quieter script instead of vendor's docker-compose script, e.g.:

docker-compose-just-quieter ps
  1. Reduce verbosity level with --log-level argument just like you would for docker-compose itself, e.g.:
$ docker-compose-just-quieter --log-level WARNING run test_service bash