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
To use with compiled languages place the compilation step in the command field.
Example usage
- graphql api restart when schema file changes
- graphql api mocks based on schema file ([https://github.com/remorses/graphql-easy-mocks](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
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 logs command, there should be always a running container
version: '3'
services:
api:
build: node_api
command: sh -c 'tsc --incremental && node index.js'
volumes:
- ./node_api/src:/src
Then execute compose-watcher to watch changes
compose-watcher -f docker-compose.yml --timeout 5
TODO add extension filter TODO dont block the event receiving thread when restarting
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
Metadata
Release files for compose-watcher 1.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| compose-watcher-1.2.1.tar.gz | 5.1 kB | Details |
Release files / compose-watcher-1.2.1.tar.gz
| Download URL | compose-watcher-1.2.1.tar.gz |
|---|---|
| Size | 5.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
be99a6b9704b9c8fab05e3bbf2b949e6749f32e6abb6df8b6167e8940b76d967
|
|
BLAKE2b-256 checksum How to use checksums |
5ed992415dced40e311b9eb8170055e8207f0e296d530eaa9a07fdd9214f7404
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8
|