haskell / docker-haskell

MIT License
63 stars 37 forks source link

Improve layer caching between images #68

Closed AlistairB closed 2 years ago

AlistairB commented 2 years ago

The previous logic to the ordering was order GHC, cabal-install and stack based on how often they get updated. (at the time) Cabal-install was updated the least so it was put as the first install. This minimises the amount of layers invalidated as these tools get updated.

However, upon reflection it is better to the images be more consistent in terms of the initial layers. This way when switching between versions of GHC you only need to download the new GHC layer and not also the stack layer. Also GHC is seeing a lot of releases these days, so that also makes it make sense as the last layer.

Then I put stack as the first install as it is updated less and less.

~Also move the ENV path setting to the top since it almost never changes.~ Nah, it needs to be at the end while the path for GHC is dynamic based on the GHC version. I prefer this path which is more realistic so will leave ENV path setting at the end.