docker-compose-watch
An experimental project to add change detection to Docker Compose projects.
Change detection rules must be configured in docker-compose.yml
file in order to be effective.
Usage
npm install -g @ckk/docker-compose-watch
dcw
This will run docker-compose up
command and reload services on file change detection.
Wrapper
You can use dcw
command as a docker-compose wrapper. It will pipe all other commands. (Not perfectly at the moment)
alias docker-compose=dcw
docker-compose watch
Configuration
Watch configuration should be done in root object with key x-watch
. Like this:
x-watch:
name-of-the-rule:
services: pattern-*
watch: volumes
match: '**/*.js'
build: false
See a project example below:
version: '2.2'
services:
store-payment-service:
build:
context: ./store/services/payment-service
volumes:
- ./store/services/payment-service/src:/app/src:cached
store-front-service:
command: 'node src/index.js'
build: ./store/services/front-service
volumes:
- ./store/services/front-service/src:/app/src:cached
mongodb:
image: 'mongo:3.4'
ports: ['27017:27017']
x-watch:
source-files:
services: store-*
watch: volumes
match: '**/*.js'
build: false
dependencies:
services: store-*
watch: buildcontext
match: 'package.json'
build: true
See the full working example with dummy services and Dockerfiles under test/fixture
directory.