Issue
In docker-compose.yml there is a named Docker volume mounted on the /public/cache directory and bind-mounting the public directory:
volumes:
- ./app:/app
- ./public:/public
- cache:/public/cache
- ./xml:/xml
- vendor:/vendor
Docker is mounting the local ./public to /public and then overwriting /public/cache with the named volume cache:. Anything that gets written into /public/cache persists across container rebuilds and will not refresh unless you remove the docker volume with docker compose down -v.
Proposed solution
-or-