Split the Dockerfile into a builder stage (apk + pip cache mounts) and a slim runtime stage, mirroring reimpasto. apk and pip package caches now persist across builds and never land in the image layers.
- KayaApp with GET/PUT recursive routes backed by memcached (aiomcache) - env-based configuration, metadata-aware value encoding, key prefix/digest - Granian RSGI launcher (rbcs-server / python -m kaya_rbcs) - pinned requirements via pip-compile, alpine:3.24 Dockerfile with healthcheck - offline tests using an in-process fake memcached - Gitea Actions workflow to build and push the multi-arch Docker image