# Description
Add Dockerfile for Debian/Ubuntu images.
Related to #14171 and PR #14191
This is largely similar to the Alpine version, however there are some
minor differences:
- I've specially added Debian Bookworm here to provide some stability
when new major versions are released. We can bump the (LTS only perhaps)
versions supported as needed.
- I moved the creation of the nushell user until later to avoid a
warning about the nu binary not (yet) being available.
- Debian doesn't come with wget or curl. I've added wget to be similar
to Alpine. I tried creating a multi-layer version to avoid installing
wget (reduced attack surface) but the image was bigger due to the extra
layer, so didn't seem worth being different.
I can transfer the relevant changes to the Alpine image if we want to
keep them easily diffable?
# User-Facing Changes
While this provides a Debian image by default. An Ubuntu image can be
created from this by changing to `FROM ubuntu:noble`. We could later
supply that as an optional argument from the build workflow to be able
to build different distros and supported versions.
# Tests + Formatting
The images produced for Debian/Ubuntu are ~75Mb bigger as listed in
`docker images`:
```
REPOSITORY TAG IMAGE ID CREATED SIZE
nu-alpine latest 71c0216eddd9 44 years ago 167MB
nu-debian latest cce3d91fc77c 44 years ago 243MB
nu-ubuntu latest ce90497da806 44 years ago 240MB
```
I've tested a few nu commands, including polars. It seems to work okay.
It makes sense to add some container-based tests once the workflows are
available. I'll probably pick that up later when @hustcer has completed
the migration of his workflows. Perhaps invoking a nushell-based test
suite if one is available. The toolkit seems to rely on cargo and the
source being available, which of course won't work here.