Skip to main content

compose-watcher

Project description

compose-watcher

Cli that restarts you docker compose services when a file inside one of its volumes changes.

Useful for faster developement with containers that expose behaviour based on mounted files.

Example usage

  • graphql api restart when schema file changes
  • graphql api mocks based on schema file (like this one)
  • Every container that generates code and exposes a server based on a config file
  • Nodejs container restarts when the src folder changes, recompiling with tsc
  • Mongoke restarts when config schema changes

Install

pip3 install compose-watcher
# then you can watch for changes
compose-watcher -f docker-compose.yml

Usage

Use the directories you want to track as service volumes.

Also consider using init: true in the compose service definition for faster killing of processes.

To not stop the docker-compose commands on other terminals there should be always a running container (this is a strange fact about docker-compose).

version: '3'

services:
  api:
    build: .
    command: sh -c 'tsc --incremental && node index.js'
    volumes:
      - ./src:/src

Then execute compose-watcher to watch changes.

compose-watcher -f docker-compose.yml --timeout 5

TODO add extension filter

How it works

After running the compose-watcher command all the volumes mounted on every service are tracked for change, when a change happens the service where the volume is mounted is restarted toghether with the services in the depends_on filed. Then the other services that have the restarted service as a dependency in depends_on are restarted too.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for compose-watcher, version 1.2.5
Filename, size File type Python version Upload date Hashes
Filename, size compose-watcher-1.2.5.tar.gz (5.1 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page