feat: avoid large copy into runtime image
-
Review changes -
-
Download -
Patches
-
Plain diff
This MR removes the many COPY
s from the builder to runtime image, which make it hard to reuse the default environment layer and causes large downloads.
The container is now built with two parallel tracks: one builder and one runtime.
## This docker build follows two tracks, in order to ensure that we build all packages
## in a builder image, but install them in a runtime image, while at the same time
## avoiding a expensive filesystem copy operation at the end that breaks layering.
##
## The build is split in an infrequently-changing default environment, upon which
## an environment with custom versions (e.g. individual commits) is layered. The
## custom environment will change frequently but layers will be smaller, allowing
## for easier deployment with smaller delta layers.
##
## The separation in a builder and runtime image is particularly relevant to end up with
## lightweight images for expensive build dependencies, such as for example CUDA.
##
## builder track runtime track
## ----------------------------------------------------------------------
## builder_image runtime_image
## builder_concretization_default
## builder_installation_default -> runtime_concretization_default (copy spack.lock)
## \-> runtime_installation_default (from buildcache)
## builder_concretization_custom
## builder_installation_custom -> runtime_concretization_custom (copy spack.lock)
## \-> runtime_installation_custom (from buildcache)
Edited by Wouter Deconinck
Merge request reports
Compare and
- version 28105ac593
- version 27105ac593
- version 265172003a
- version 253e598f0c
- version 2472654a99
- version 23f06dbe6b
- version 22d62ff083
- version 21db19927a
- version 20e92fcff5
- version 19a17246fe
- version 183db9d44b
- version 1761cfbc64
- version 167efc5788
- version 15ca7183f7
- version 1492cca081
- version 13f28a1f91
- version 12397a5766
- version 11ae91a05e
- version 1005321e4f
- version 93fc88e0a
- version 82e4ad85d
- version 747b0d65d
- version 6c877e79c
- version 57a0135fd
- version 4a9d08563
- version 3cc2c1106
- version 230f21f25
- version 16348a791
- master (base)
- latest versionf7b9ca8921 commits,
- version 28105ac59321 commits,
- version 27105ac59321 commits,
- version 265172003a21 commits,
- version 253e598f0c20 commits,
- version 2472654a9919 commits,
- version 23f06dbe6b18 commits,
- version 22d62ff08317 commits,
- version 21db19927a16 commits,
- version 20e92fcff515 commits,
- version 19a17246fe14 commits,
- version 183db9d44b13 commits,
- version 1761cfbc6412 commits,
- version 167efc578811 commits,
- version 15ca7183f710 commits,
- version 1492cca0819 commits,
- version 13f28a1f918 commits,
- version 12397a57667 commits,
- version 11ae91a05e6 commits,
- version 1005321e4f5 commits,
- version 93fc88e0a5 commits,
- version 82e4ad85d4 commits,
- version 747b0d65d4 commits,
- version 6c877e79c3 commits,
- version 57a0135fd2 commits,
- version 4a9d085631 commit,
- version 3cc2c11061 commit,
- version 230f21f251 commit,
- version 16348a7911 commit,
Compare changes
- Side-by-side
- Inline
Files
3Loading