The code related with the JPIP requests and responses is in:
The source code inside the jpip folder is a partial implementation of the JPIP protocol needed to perform JPIP requests. You can find more information about the JPIP protocol in this url:
I don't have a deep knowledge of the JHelioviewer source code but in my opinion the first thing to do is try to understand how JHelioviewer manages the JPIP requests and responses. For this task you can study the J2KReader and J2KDecoder classes.
Once you know how it works, you can try to find a solution to requests several WOIs for each image. I can think of two possible solutions:
1) A possible solution could be to perform several requests in parallel.
2) The client could send to the server how is his cache model to inform the server about the WOIs received in previous requests.
@Dhiraj240 The only change that I have seen in your proposal is the base layer, you have replaced ubuntu:16.04 by alpine:latest.
In my opinion, use Alpine is a good idea to reduce the size of a Docker image. But apart from that, I am not able to see what are the changes that you have developed in the script to optimize the size of the Docker image. I only see a copy and paste of the RUN layer used in the previous version. (Replacing apt-get by apk)
One last question, if the size of the last version of Alpine is 5.61MB, how is possible to get a Docker image of 2 MB using Alpine as a base layer? Thanks!
@Dhiraj240 I have created a new docker image for the ESA JPIP Server using Alpine as base layer.
I have used a multi-stage build in order to reduce the final size of the image, and now the image size is 118 MB instead of 564MB.
You can see the changes that I have carried out to compile the project using Alpine as base layer. The Dockerfile is available at: