-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Imagine having projects that can be bootstrapped with dependencies within the context of the project. The definition of those dependencies can travel within the repository.
Example: Two repositories require different versions of NPM. The first project requires v2.5.10 and the second required v4.0.3. To set these up with Dex in its current form requires searching for the appropriate dockerfile and building/installing through dex. You can then choose to install them globally or with the dex prefix. We would then need to modify our project code to prefer one of the dex images to have the two separate versions running.
In the use case above, imagine that we created .dexjson file that defines the required images to run the current program. In our use case above, the file might look like:
Dependencies:
command-name: docker-tag
node: node-4
php: ./php7-cli/Dockerfile
cop: dexbuilds/cop:releaseDex would then build the four dependencies listed above and create executable symlinks within the project root to run the individual commands. As shown above in the config file, the dependencies can reference docker tags or local docker files.
Inspiration: https://docs.haskellstack.org/en/stable/GUIDE/#what-makes-stack-special