​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

Reply via email to