- I suggested this for the contents of
[Linuxbrew/docker](https://github.com/Linuxbrew/docker) in
https://github.com/Linuxbrew/docker/issues/75. People agreed, and
Shaun asked me to do the same here.
- This adds a step to CI to lint the Dockerfile, via
[hadolint](https://github.com/hadolint/hadolint), on Ubuntu.
- The linting errors it surfaced on this Dockerfile were:
```
Dockerfile:4 DL3008 Pin versions in apt get install. Instead of `apt-get install <package>` use `apt-get install <package>=<version>`
Dockerfile:30 DL3020 Use COPY instead of ADD for files and folders
Dockerfile:32 DL3003 Use WORKDIR to switch to a directory
```
- [DL3008](https://github.com/hadolint/hadolint/wiki/DL3008) - pinning
versions in `apt-get install` - is at odds with what we recommend in the
normal Homebrew on Linux dependency install instructions. We don't
want the dependency management of having to check each of these
Dockerfiles periodically for the latest version numbers of packages
and have to update them. So I've disabled this lint.
- [DL3003](https://github.com/hadolint/hadolint/wiki/DL3003) - use
WORKDIR to `cd` - is disabled in this case due to [review
comments](https://github.com/Homebrew/brew/pull/7433/files#r415098255).
GitHub Actions has started rolling out Linuxbrew to some workers so
ensure we can handle whether or not it's present.
Cleanup and move things around while we're here.
- The style and man page checks are quicker than `brew tests`, which can
take forever.
- If people make mistakes with style or forget to run `brew man`, they
will notice quicker, thus fixing issues quicker.
- This also wastes less compute time (and therefore energy) by only
running `brew tests` when all the other less-involved checks work.