<p>Add a config file with parameters used in install/run script. You can look at Harbor (<a href="https://github.com/goharbor/harbor" rel="nofollow noreferrer">Github</a>, <a href="https://goharbor.io/docs/1.10/install-config/download-installer/" rel="nofollow noreferrer">install docs</a>) as an example of doing just that (and they have a configuration migrator).</p>

CC BY-SA 4.0
2020-05-06T11:37:51.687Z
2020-05-06T11:37:51.687Z
2020-06-18T08:28:10.803Z
chupasaurus
<p>We want to create bundles of our applications in order to distribute to clients etc. An application can have more than one <strong>component</strong>. 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. </p>

<p>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 <code>docker-compose up</code> to start the application.</p>

<p>We currently have a Jenkins pipeline that when run will produce a zip file containing <code>.tar</code> files of all the Docker images of the components. There will also be a <code>start.sh</code> (or <code>start.bat</code>) file that, when run, will load all the Docker images and run <code>docker-compose up</code>.</p>

<p>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 <code>docker-compose.yml</code></p>

<p>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?</p>

<docker><jenkins><jenkins-pipeline><docker-compose><continuous-delivery>
Using DevOps pipelines to create distribution bundles of applications
user538578964
# Using DevOps pipelines to create distribution bundles of applications

(Asked by: username_0 on 2020-05-06)

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?

**Tags:** docker, jenkins, jenkins-pipeline, docker-compose, continuous-delivery


---

## 1 answers

### Answer by username_1 on 2020-05-06. Score: 2

Add a config file with parameters used in install/run script. You can look at Harbor ([Github](https://github.com/goharbor/harbor), [install docs](https://goharbor.io/docs/1.10/install-config/download-installer/)) as an example of doing just that (and they have a configuration migrator).


---

