chore(docker): give composer a writable cache directory
Composer runs as www-data, whose home directory is owned by root, so every run
in the container warned that it could not create its cache and proceeded
without one.
COMPOSER_HOME now points at an explicit path that both image stages create and
chown after the user id is adjusted, and compose mounts a named volume over it
so the cache survives container recreation.