each service defines its production-ready docker-compose.yml that pulls images from upstream registry and is independent on its own (can be run separately)
each service defines its local docker-compose.local.yml that builds images locally and has to be merged with something to be usable
base docker-compose.yml which just extends composefiles of all services
docker-compose.override.yml that builds all services locally
Examples:
run all services from local sources: docker-compose up
run all services from upstream registry: docker-compose -f docker-compose.yml up
run all services from upstream registry but fusion from local sources: docker-compose -f docker-compose.yml -f fusion/docker-compose.local.yml up
run only fusion service (e.g. for deployment): cd fusion && docker-compose up
All services should be added as submodules so their sources are available to build them locally. The caveat is that we need to update the submodule reference after each change in the submodule repo if we want to stay up to date. We can think of it as version pinning and bumping.
So the workflow is kinda like this:
Develop something locally, you can change all the code at once (although the ideal situation is that you focus on only one service at a time and keep the development independent)
Commit and push everything in submodules
Run git submodule update --remote --merge to update submodule references to latest commits and push the reference updates, so other people are up to date too
This should go in the README.md someday, but not now
docker-compose.yml
that pulls images from upstream registry and is independent on its own (can be run separately)docker-compose.local.yml
that builds images locally and has to be merged with something to be usabledocker-compose.yml
which just extends composefiles of all servicesdocker-compose.override.yml
that builds all services locallyExamples:
docker-compose up
docker-compose -f docker-compose.yml up
fusion
from local sources:docker-compose -f docker-compose.yml -f fusion/docker-compose.local.yml up
fusion
service (e.g. for deployment):cd fusion && docker-compose up
All services should be added as submodules so their sources are available to build them locally. The caveat is that we need to update the submodule reference after each change in the submodule repo if we want to stay up to date. We can think of it as version pinning and bumping.
So the workflow is kinda like this:
git submodule update --remote --merge
to update submodule references to latest commits and push the reference updates, so other people are up to date tooThis should go in the
README.md
someday, but not now