We want to create bundles of our applications in order to distribute to clients etc. An application can have more than one component. Ex: an application can have a spring server and a scheduler so in order to distribute this application both jars will have to be given to the client.
We want to use Docker/Docker compose to accomplish this. Ex: we give a client a bundle containing a Docker compose file, and he/she just runs docker-compose up
to start the application.
We currently have a Jenkins pipeline that when run will produce a zip file containing .tar
files of all the Docker images of the components. There will also be a start.sh
(or start.bat
) file that, when run, will load all the Docker images and run docker-compose up
.
Some of these components have properties that the client needs to configure according to their environment (ex: SCM URL). If the component is Spring/Java based, we would externally mount the application.properties file into the docker image in the docker-compose.yml
This all works, I just want to know if the current process we are using is compliant with industry standards or is there a better way of meeting the requirement? Any open source tools that would simplify the process?