There are two reasons we may want NOT to use caching of pip deps: 1. When building a container, unless we specifically clean it up, it'll remain, even when we squash the image layers later. 2. When building a container, that cache is not useful, as we squash our containers later (so that layer is not cached really). And our CI cleans up the layers repo anyway. 3. Caching sometimes isn't great, and doesn't ensure we pick up the exact version (or latest) that we wish to... This PR changes two locations in Scylla, both of which (also) build containers, so certainly relevant for 1, 2 above and possibly 3. No real need to backport. Signed-off-by: Yaniv Kaul <yaniv.kaul@scylladb.com> Closes scylladb/scylladb#23822
Docker image with a self-built executable
The following instructions will allow you to build a Docker image which contains a combination of some tools from the nightly build in http://downloads.scylladb.com/ (as described above) but with a Scylla executable which you build yourself.
Do the following in the top-level Scylla source directory:
-
Build your own Scylla in whatever build mode you prefer, e.g., dev.
-
Run
ninja dist-dev(with the same mode name as above) to prepare the distribution artifacts. -
Run
./dist/docker/debian/build_docker.sh --mode devThis creates a docker image as a file, in the OCI format, and prints its name, looking something like:
oci-archive:build/dev/dist/docker/scylla-4.6.dev-0.20210829.4009d8b06 -
This file can copied to a docker repository, or run directly with podman:
podman run oci-archive:build/dev/dist/docker/scylla-4.6.dev-0.20210829.4009d8b06Often with additional parameters, as in docs/alternator/getting-started.md:
podman run --name scylla -d -p 8000:8000 oci-archive:... --alternator-port=8000 --alternator-write-isolation=always