brianloss commented on PR #20:
URL: https://github.com/apache/accumulo-docker/pull/20#issuecomment-1250956637

   I'm not sure you even need a multi-stage build. Typically, as I've seen 
anyway, you would do a multi-stage build if you need to install a lot of 
dependencies or need a different base image to build some software, but then 
just want to use the build output in your final image.
   
   Docker images are already layered, and general advice is to minimize 
commands in the Dockerfile that add layers as that makes the image larger. 
However, combining everything into a small number of layers will then mean any 
change causes the one (or few) layers to be rebuilt. You can see that with the 
[single RUN 
command](https://github.com/apache/accumulo-docker/blob/main/Dockerfile#L39) in 
the Dockerfile. Since the hadoop/zookeeper/accumulo download and accumulo 
native build are all combined into a single layer, if you want to rebuild 
accumulo then everything must be repeated. Simply splitting the RUN command 
into multiple run commands might achieve what you want. The earlier RUN 
commands should have the things that you don't expect to change often (e.g., 
download and install hadoop and zookeeper). Then the later RUN commands should 
have the things you want to iterate on.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to