Integrate [rust-toolchain] image
Integrates, builds and pushes the rust-toolchain
of https://gitlab.nomadic-labs.com/nomadic-labs/iac/docker/rust-toolchain/-/blob/42eb2aa2d44b129e41a5a474f47c73a0694b7df3/Dockerfile into opam-repos
.
I've tried to integrate the build of this image in the existing script structure. However,
- the
rust-toolchain
image does not come in an amd64/arm64 flavour - if it can be avoided, i prefer not building this image in the existing
build-arm64/amd64
as they're very slow already
For this reason, I've added the concept of "image families". Basically, there are two families: runtime
and rust-toolchain
. All the previous images are in the runtime
family and the new rust-toolchain
image is in the rust-toolchain
family (makes sense right?).
Scripts are now mostly parametrized by the family, which defaults to the "pseudo"-family all
that includes all images. This means that locally, you can now do e.g.
./scripts/create_docker_image.sh tezos/opam-repository '' amd64 <IMAGE_FAMILY>
with
-
<IMAGE_FAMLY>
asruntime
to build all the images in theruntime
family. -
<IMAGE_FAMLY>
asrust-toolchain
to build all the images in therust-toolchain
family. -
<IMAGE_FAMLY>
asrust-toolchain
asall
or absent to build all the images.
tezos/tezos companion: tezos!10548 (merged)
Todo
-
update readme (graph) -
shellcheck? -
hadolint? -
add--help
to some scripts -
archive https://gitlab.nomadic-labs.com/nomadic-labs/iac/docker/rust-toolchain
Consequences
- rust-toolchain and opam-repo now update in lock step (can't update on without the other)
- changing the rust dependencies induces a 40 minute wait for the
runtime-
images to build
We could make the CI faster in cases where only rust dependencies are updated through docker caching. However, modifying dependencies happens rarely anyhow.