summaryrefslogtreecommitdiff
path: root/.dockerignore
diff options
context:
space:
mode:
authorHarmen Stoppels <me@harmenstoppels.nl>2023-12-20 11:31:41 +0100
committerGitHub <noreply@github.com>2023-12-20 11:31:41 +0100
commit16e27ba4a6552f312b8982be0c32c390f4f8479a (patch)
treeed44c7ae6da0ef84a1bc9bdcc15198781b1d30c9 /.dockerignore
parent2fda288cc56e6df5d036419577358dfe17d270d1 (diff)
downloadspack-16e27ba4a6552f312b8982be0c32c390f4f8479a.tar.gz
spack-16e27ba4a6552f312b8982be0c32c390f4f8479a.tar.bz2
spack-16e27ba4a6552f312b8982be0c32c390f4f8479a.tar.xz
spack-16e27ba4a6552f312b8982be0c32c390f4f8479a.zip
`spack buildcache push --tag`: create container image with multiple roots (#41077)
This PR adds a flag `--tag/-t` to `buildcache push`, which you can use like ``` $ spack mirror add my-oci-registry oci://example.com/hello/world $ spack -e my_env buildcache push --base-image ubuntu:22.04 --tag my_custom_tag my-oci-registry ``` and lets users ship a full, installed environment as a minimal container image where each image layer is one Spack package, on top of a base image of choice. The image can then be used as ``` $ docker run -it --rm example.com/hello/world:my_custom_tag ``` Apart from environments, users can also pick arbitrary installed spec from their database, for instance: ``` $ spack buildcache push --base-image ubuntu:22.04 --tag some_specs my-oci-registry gcc@12 cmake $ docker run -it --rm example.com/hello/world:some_specs ``` It has many advantages over `spack containerize`: 1. No external tools required (`docker`, `buildah`, ...) 2. Creates images from locally installed Spack packages (No need to rebuild inside `docker build`, where troubleshooting build failures is notoriously hard) 3. No need for multistage builds (Spack just tarballs existing installations of runtime deps) 4. Reduced storage size / composability: when pushing multiple environments with common specs, container image layers are shared. 5. Automatic build cache: later `spack install` of the env elsewhere speeds up since the containerized environment is a build cache
Diffstat (limited to '.dockerignore')
0 files changed, 0 insertions, 0 deletions