Re: [xwiki-users] Possible optimisations for xwiki/xwiki-mysql-tomcat docker image

2017-01-20 Thread Vincent Massol
Hi Denis,

> On 20 Jan 2017, at 09:51, Denis GERMAIN  wrote:
> 
> I was confused also about the difference because for me also it shouldn't be 
> 1.6 GB but that's what "docker images" tells me. On dockerhub, it's the 
> "compressed size" so maybe compression could explain this ?
> 
> For the 300 MB, you have to take into account how the docker images are 
> built. In the Dockerfile, each time you write a line, you create a layer. One 
> of the error you made was to write the Dockerfile as you would write an 
> installation procedure. 
> It's more readable, but if you make multiple modifications on the filesystem, 
> you store it each time. The most costly one in this case is "RUN chown -R 
> tomcat8:tomcat8 /var/lib/tomcat8" which just changes the owner on 230 MB 
> worth of data, thus adding 230 MB of nearly identical data as a new layer.
> 
> You can view the impact of each layer here 
> https://microbadger.com/images/xwiki/xwiki-mysql-tomcat (you can also get a 
> html code to get a nice image for you repository).

Got it! That’s very nice and useful! :) Thanks for pointing this out.

I’ll look into this later this afternoon or over the weekend, unless you wish 
to send a PR which would be awesome! :)

Thanks
-Vincent

> Regards
> 
> 2017-01-19 15:04 GMT+01:00 Vincent Massol :
> Hi Denis,
> 
> > On 18 Jan 2017, at 15:46, Denis GERMAIN  wrote:
> >
> > Hi list,
> >
> > Vincent Massol has asked for code review after official docker image
> > annoncement and though I am no Docker expert, I have found a few leads to
> > reduce image size and might have some suggestions to improve it.
> >
> > With 3 little changes I have gained about 500 MB, but I still have to make
> > sure everything still works.
> > - 200 of those MB where gained by a commonly used trick : adding
> > "--no-install-recommends" option to apt-get.
> > Some packages that are commonly installed with libreoffice might have been
> > skipped and I still have to determine if it's OK or not.
> >
> > - The other 300 MB are safe. Most of it comes from "RUN chown -R
> > tomcat8:tomcat8 /var/lib/tomcat8" being moved inside the same layer as the
> > curl xwiki.war && unzip.
> 
> This is great! Thanks so much for reviewing it and proposing ideas :)
> 
> For my knowledge, could you explain quickly how this wins 300MB (it seems 
> magical :))?
> 
> Also, the image take “only” 900MB (see 
> https://hub.docker.com/r/xwiki/xwiki-mysql-tomcat/tags/) so I don’t 
> understand why it takes 1.6GB for you.
> 
> Thanks a lot
> -Vincent
> 
> >
> > docker images
> > REPOSITORY   TAG IMAGE
> > IDCREATED SIZE
> > xwiki-mysql-tomcat   after
> > b05844c94dd07 seconds ago   1.157 GB
> > xwiki-mysql-tomcat   before
> > 174d549368d52 hours ago 1.689 GB
> >
> > As soon as I have checked this works, I'll do a pull request.
> > In the meantime, code is online on
> > https://github.com/zwindler/docker-xwiki-1/tree/clear_apt
> >
> > Regards
> > Denis GERMAIN
> 
> 



Re: [xwiki-users] Possible optimisations for xwiki/xwiki-mysql-tomcat docker image

2017-01-20 Thread Denis GERMAIN
I was confused also about the difference because for me also it shouldn't
be 1.6 GB but that's what "docker images" tells me. On dockerhub, it's the
"compressed size" so maybe compression could explain this ?

For the 300 MB, you have to take into account how the docker images are
built. In the Dockerfile, each time you write a line, you create a layer.
One of the error you made was to write the Dockerfile as you would write an
installation procedure.
It's more readable, but if you make multiple modifications on the
filesystem, you store it each time. The most costly one in this case is "RUN
chown -R tomcat8:tomcat8 /var/lib/tomcat8" which just changes the owner on
230 MB worth of data, thus adding 230 MB of nearly identical data as a new
layer.

You can view the impact of each layer here
https://microbadger.com/images/xwiki/xwiki-mysql-tomcat (you can also get a
html code to get a nice image for you repository).

Regards

2017-01-19 15:04 GMT+01:00 Vincent Massol :

> Hi Denis,
>
> > On 18 Jan 2017, at 15:46, Denis GERMAIN  wrote:
> >
> > Hi list,
> >
> > Vincent Massol has asked for code review after official docker image
> > annoncement and though I am no Docker expert, I have found a few leads to
> > reduce image size and might have some suggestions to improve it.
> >
> > With 3 little changes I have gained about 500 MB, but I still have to
> make
> > sure everything still works.
> > - 200 of those MB where gained by a commonly used trick : adding
> > "--no-install-recommends" option to apt-get.
> > Some packages that are commonly installed with libreoffice might have
> been
> > skipped and I still have to determine if it's OK or not.
> >
> > - The other 300 MB are safe. Most of it comes from "RUN chown -R
> > tomcat8:tomcat8 /var/lib/tomcat8" being moved inside the same layer as
> the
> > curl xwiki.war && unzip.
>
> This is great! Thanks so much for reviewing it and proposing ideas :)
>
> For my knowledge, could you explain quickly how this wins 300MB (it seems
> magical :))?
>
> Also, the image take “only” 900MB (see https://hub.docker.com/r/
> xwiki/xwiki-mysql-tomcat/tags/) so I don’t understand why it takes 1.6GB
> for you.
>
> Thanks a lot
> -Vincent
>
> >
> > docker images
> > REPOSITORY   TAG IMAGE
> > IDCREATED SIZE
> > xwiki-mysql-tomcat   after
> > b05844c94dd07 seconds ago   1.157 GB
> > xwiki-mysql-tomcat   before
> > 174d549368d52 hours ago 1.689 GB
> >
> > As soon as I have checked this works, I'll do a pull request.
> > In the meantime, code is online on
> > https://github.com/zwindler/docker-xwiki-1/tree/clear_apt
> >
> > Regards
> > Denis GERMAIN
>
>


[xwiki-users] Possible optimisations for xwiki/xwiki-mysql-tomcat docker image

2017-01-18 Thread Denis GERMAIN
Hi list,

Vincent Massol has asked for code review after official docker image
annoncement and though I am no Docker expert, I have found a few leads to
reduce image size and might have some suggestions to improve it.

With 3 little changes I have gained about 500 MB, but I still have to make
sure everything still works.
- 200 of those MB where gained by a commonly used trick : adding
"--no-install-recommends" option to apt-get.
Some packages that are commonly installed with libreoffice might have been
skipped and I still have to determine if it's OK or not.

- The other 300 MB are safe. Most of it comes from "RUN chown -R
tomcat8:tomcat8 /var/lib/tomcat8" being moved inside the same layer as the
curl xwiki.war && unzip.

docker images
REPOSITORY   TAG IMAGE
IDCREATED SIZE
xwiki-mysql-tomcat   after
b05844c94dd07 seconds ago   1.157 GB
xwiki-mysql-tomcat   before
174d549368d52 hours ago 1.689 GB

As soon as I have checked this works, I'll do a pull request.
In the meantime, code is online on
https://github.com/zwindler/docker-xwiki-1/tree/clear_apt

Regards
Denis GERMAIN