Hi Isuru, Do you have any specific concerns about using a wso2base image? On average there is a spike of 100MB when using a wso2base image, but that's a small price to pay when considering benefits users would gain out of this. Note that users can use "default" provisioning method to package any jars/configs to the image. The main problem here is the time taken to run apt-get update and package installation. Especially having to download files over I'net every time a Docker image is built which I think is unnecessary. wdyt?
Thanks. On Wed, Jun 1, 2016 at 10:31 PM, Isuru Haththotuwa <isu...@wso2.com> wrote: > Hi Akila and Imesh, > > Without creating a base image, if we package everything in a product > specific image, host it in a local registry, and provide instructions to > create a local Dockerfile extending from that image, the time taken to > build the local image would be lesser. This will speedup the > development/testing procedure even more. The developers can package any > apps/jars/configs via the local Dockerfile (using volume mounts, etc.), for > testing. I have seen this pattern used in some Docker images, for an > example in the haproxy Docker image [1]. > > One downside is, as you mentioned, we cannot push the image to Dockerhub > with Oracle JDK distribution included. Maybe we can create the product > Docker image with the relevant utilities (wget, zip, unzip, etc.) + the > product distribution, and push it to Docker hub. Then provide an option to > package the JDK via a local Dockerfile extending from the product > Dockerfile. > > WDYT? > > [1]. https://hub.docker.com/_/haproxy/ > > On Mon, May 30, 2016 at 12:48 PM, Akila Ravihansa Perera < > raviha...@wso2.com> wrote: > >> Hi, >> >> Currently we don't have a base image for WSO2 Docker images due to image >> size issues we had with it. But later we found out that this was mainly due >> to multiple RUN commands, which caused Docker to add unnecessary layers. >> >> I think we should bring back the base image for couple of reasons; >> >> 1. wso2base image with minimum packages installed (wget, puppet etc) will >> eliminate the need for having to run apt-get commands (which are very >> expensive, time-wise) each and every time >> >> 2. wso2base image can be hosted publicly (without Oracle JDK of course) >> so that users don't have to build wso2base but rather pull it from >> DockerHub. >> >> 3. wso2base image provides a Docker layer which reduces the amount of >> traffic carried when pulling images from a Docker registry over a long >> period of time. This is because base image is very unlikely to be changed, >> but product images can change very rapidly (due to artifacts or >> configuration change, product version etc.). It is unnecessary to carry the >> information in the lower level layers each time a product image is changed. >> >> If you must use a single image, I found this cool Docker tool written in >> Python which can be used to squash Docker layers called docker-squash [1]. >> Following is a comparison of Docker images built with/without wso2base and >> squashed images; >> >> [image: Inline image 3] >> >> In summary; >> wso2am-1.10.0 with base image: 1.079GB >> wso2am-1.10.0 with base image and *squashed*: 948MB >> wso2am-1.10.0 *without* base image: 969MB >> >> wso2esb-4.9.0 with base image: 794MB >> wso2esb-4.9.0 with base image and *squashed*: 664MB >> wso2esb-4.9.0 *without* base image: 685MB >> >> In conclusion, introducing a base image with minimum packages has a image >> size overhead of around 100+MB, but having individual images without a >> hierarchy can cause a significant amount of unnecessary information being >> transferred over the network when pull/push'ing to/from a registry. >> >> I've created a PR for this feature at [2]. Also used >> "--no-install-recommends" option to apt-get when installing packages to >> prevent unnecessary packages being installed. Please share your thoughts. >> >> [1] https://github.com/goldmann/docker-squash >> [2] https://github.com/wso2/dockerfiles/pull/46/files >> >> Thanks. >> -- >> Akila Ravihansa Perera >> WSO2 Inc.; http://wso2.com/ >> >> Blog: http://ravihansa3000.blogspot.com >> >> _______________________________________________ >> Dev mailing list >> Dev@wso2.org >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> > > > -- > Thanks and Regards, > > Isuru H. > +94 716 358 048* <http://wso2.com/>* > > > -- Akila Ravihansa Perera WSO2 Inc.; http://wso2.com/ Blog: http://ravihansa3000.blogspot.com
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev