Fix WSL detection in non-Docker containers
Summary
--
I was initially just debugging astral-sh/ruff-action#307 with Claude and was
quite skeptical when it started rewriting the [`is-wsl`] crate, but after taking
a closer look at `is-wsl` and its dependency [`is-docker`], I thought it might
actually be worth doing.
This PR fixes astral-sh/ruff-action#307 by essentially inlining both the
`is-wsl` and `is-docker` crates and expanding the `is_docker` check to account
for additional types of containers. These crates are both one-file dependencies
that haven't been updated in a couple of years.
As shown in the debug logs from my comment on the issue, the minimal change to
resolve the problem for the `ubuntu-slim` GitHub runner is to check for
`/run/.containerenv` in addition to `/.dockerenv`, but Claude added a few
additional checks on the `cgroup` to cover LXC and kubernetes containers too.
Test Plan
--
I forked the reproduction repo shared in the issue and tested that the Ruff
version on this branch produces an `EXE001` diagnostic, as expected:
brentbot/my-ruff-issue#1
[`is-wsl`]: https://github.com/TheLarkInn/is-wsl/blob/main/src/lib.rs
[`is-docker`]: https://github.com/TheLarkInn/is-docker/blob/main/src/lib.rs