Hi All, Recently after a discussion we had with Lakmal and the PaaS team, we reduced the size of the WSO2 Docker images by combining multiple RUN instructions, removing the puppet modules COPY command and by removing the wso2/base docker image. Afterwards we thought of redesigning the way we create Docker images to optimize it's build process and the usage.
What we thought was to create two sets of Docker images for WSO2 products: 1. WSO2 Product Base Docker Images - This is to package the vanilla distributions of WSO2 products in Docker images. - These would not contain any configurations or artifacts but the JDK, product distribution and a bash script to start the server. 2. WSO2 Product Docker Images with Configurations and Artifacts - These would be created based on the WSO2 product base docker images by adding configurations and deployable artifacts on top. - Configurations can be added manually or using a configuration management system such as Puppet, Chef, Ansible, etc. - Depending on the deployment pattern, different product profiles would be generated. The following diagram shows two sample sets of Docker images and how they are tagged: Following are the main reasons for taking this approach: - Reduce the image size to the maximum possible level - Reduce the time it takes to build a custom WSO2 product docker image (with configurations and artifacts) - Adhere to the standards used by the Docker community Please share your thoughts on this. We are planning to update the WSO2 Dockerfiles repository according to this model. Thanks -- *Imesh Gunaratne* Senior Technical Lead WSO2 Inc: http://wso2.com T: +94 11 214 5345 M: +94 77 374 2057 W: http://imesh.io Lean . Enterprise . Middleware
_______________________________________________ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture