Currently, products and libraries are built via Dockerfiles and the build artifacts are only stored in the Docker images. These artifacts often contain patches from Stackable and cannot be obtained from anywhere else. It is hard to extract them from the images and reuse them.
There are the following advantages if the artifacts would instead be stored in a repository:
For instance, customers want to use the patched Hadoop libraries in their development process. This would be easily possible if the JARs are provided in a Maven repository.
It would also reduce the build times for Docker images if the pre-compiled artifacts are just pulled from a repository. It would also avoid unnecessary rebuilds, e.g. Hadoop must be built for the Hadoop image and as HBase also depends on Hadoop, it must be built again for the HBase image.
The current Docker build process allows only to define specific versions. For example, the hbase-connector is provided in the Spark image. The hbase-connector depends on specific Hadoop and HBase versions. At build time, it is not known which versions the customer will use. It would be preferable if all combinations of pre-built versions of the hbase-connector are just retrieved from a Maven repository and stored in the Spark image.
For JARs, it is quite clear that they could be stored in a Maven repository.
However, it must be evaluated if complete product builds, like HBase, should be stored in Nexus.
It must also be checked if it makes sense to store artifacts with other packaging mechanisms, like Python packages.
Currently, products and libraries are built via Dockerfiles and the build artifacts are only stored in the Docker images. These artifacts often contain patches from Stackable and cannot be obtained from anywhere else. It is hard to extract them from the images and reuse them.
There are the following advantages if the artifacts would instead be stored in a repository:
For JARs, it is quite clear that they could be stored in a Maven repository. However, it must be evaluated if complete product builds, like HBase, should be stored in Nexus. It must also be checked if it makes sense to store artifacts with other packaging mechanisms, like Python packages.