* Update Dockerignore
Updates dockerignore to protect against cache contamination so we can more effectively utilise the full potential of our Cache system.
* Implement Caching strategy support in dockerfile
* Implement Caching for CI to massively speed up warm builds
* Fix Wildcard funkyness breaking docker builds.
* Fix FROM AS style guideline violations
There's a style guideline that says you shouldn't mix the case of FROM and AS in a FROM AS statement. So we fix this violation in this commit.
You can also force it all to lowercase but considering all our other keywords are uppercase why not go uppercase only for consistency.
* Use multi-stage build in Dockerfile
https://github.com/the-draupnir-project/Draupnir/issues/300.
* Move git describe and build into one stage.
Probably won't be a good idea to download an alpine image just to install git.
* Remove git describe step from CI.
* whoopsie, copy version from the build stage not the deleted stamp.
We have a lot of verbose headers, and i think now is the best opportunity we have to become reuse compliant given that we just did two other similar maintenance changes (prettier, typescirpt5 & eslint9 & typescript-eslint).
* synapse_antispam resuse headers.
* delete old unused tslint.json.
* Add REUSE to pre-commit config.
* reuse info for config directory.