* Rebuilding the image will not accidentally assign a different UID to `bugsink`
this would be "extremely annoying" in the context of bind-mounts and volumes.
* Ensures predictable ownership for bind-mounts and Docker volumes at build time.
* Avoids collisions with existing host accounts
Considerations for 14237:
* well below the 65535 limit, keeping it compatible with default subuid/subgid mappings.
* Positioned above 1000 to steer clear of standard system and regular user ranges.
* Not so large that older filesystems or tooling (e.g., simple NFS exports) might have issues.
See #176
Before this commit, the COPY command was still used to copy-over 2 files from
the working dir. Alhtough this was probably fine in practice (docker build
typically happens from a checked out state that matches the wheel you're
docker-building) it's not what's on the tin ("from wheel") and it opens up
the possiblity of subtle bugs (file mismatches when building from a different
state). Better prevent those.
My reasoning is twofold:
1. a count of 1 is actually probably "enough for many setups" because ingestion
is very fast anyway (just store the file); while the lower memory-footprint
that comes with having fewer workers means that adoption of Bugsink will be
easier.
2. tuning the variable is going to be less annoying if there's no default that
might override "in the wrong direction" (i.e. the interaction between
`WEB_CONCURRENCY` and `GUNICORN_CMD_ARGS`)
See #101 (where the concept of customizability was discussed, though not the
present idea of chaning the default).
In particular:
* Move building of mysqlclient (expensive, mostly unchanging) up
* Move handling of WHEEL_FILE down (always changing for invocations)
The advantages are most clear when running buildx.
This was prompted by discussions on #68, when I tried to explain my
reasoning for the current way things were working (building wheels,
and then copying them over) but I couldn't really justify that, so
I got rid of it instead. (detail: I noticed that psycopg[binary] did
not follow this pattern, which made me question it more broadly)