nginxinc / docker-nginx

Official NGINX Dockerfiles
BSD 2-Clause "Simplified" License
3.26k stars 1.73k forks source link

Add ubuntu template #839

Closed nkadel closed 8 months ago

nkadel commented 1 year ago

Is your feature request related to a problem? Please describe

Please provide a template for Ubuntu images. There are people unfamiliar and uncomfortable with anything but an "approved" operating system, and Ubuntu is far more popular.

Describe the solution you'd like

Publish an Ubuntu template, similar to the Debian template..

Describe alternatives you've considered

Convincing clients to accept Debian as well as Ubuntu, which is often a demanding process.

Additional context

Ubuntu may not perform as well as Debian, which is noted for its stability and lightweight operating system. But having a tool that is sharper and longer is of little benefit if local law enforcement considers it a weapon rather than a tool and arrests you.

thresheek commented 1 year ago

Hi @nkadel!

We've discussed this in https://github.com/docker-library/official-images/pull/1462 quite a long time ago, but I don't think much changed in regards to "why" and "why not" we should have so many different OSes to support.

nkadel commented 1 year ago

According to surveys such as those published by TrueTrust, Ubuntu is roughly 33% of the entire Linux market. Debian is only 16%. I'd say that's a pretty significant change from that thread in 2016. It's not necessarily as clean or elegant as Debian, but it also tends to be noticeably more up-to-date with active development than Debian. It's gotten much more difficult to find DevOps people with hands-on Debian expertise, and who correspondingly are willing to support an OS that is not actively supported in their shop.

I'm afraid I don't have in my hands the load test rig or regression suite to send you a robust Dockerfile, or I'd offer to do so myself.

thresheek commented 1 year ago

I don't think Debian is that much different to maintain compared to Ubuntu, but indeed, corporate policies might an issue.

Also, I feel like Ubuntu-based tags in the official images are much less used for the software typically found in stacks with nginx:

thresh official-images/library $ egrep -lE '(ubuntu|trusty|xenial|bionic|focal|jammy|lunar)' *
buildpack-deps
clojure
eclipse-temurin
flink
gazebo
gradle
groovy
ibm-semeru-runtimes
ibmjava
kong
mariadb
maven
mongo
neurodebian
open-liberty
rabbitmq
ros
sapmachine
spark
swift
tomcat
tomee
ubuntu
websphere-liberty

I would like to have @yosifkit and @tianon input on this - I feel like we're not adding much value by adding a new very similar variant with (some) increased maintenance costs.

nkadel commented 1 year ago

Prepared to put my keyboard where my mouth is, I went ahead and built a pull request with a very lightly tested build image for Ubuntu 22.04LTS, at https://github.com/nginxinc/docker-nginx/pull/840 . I do that for a lot of RHEL packages, I can do some of the legwork for nginx and Ubuntu. The default nginx in Ubuntu 22.04LTS is 1.18.1, and this uses your hooks to enable containers with nginx 1.25.2, so I think it's a win for any containers stuck with Ubuntu by policy.

yosifkit commented 1 year ago

Yeah, from most container perspectives, Debian and Ubuntu aren't that different. The diff between the current Debian images and the proposed Ubuntu images is basically just the FROM value.

In Docker Official Images, we usually push back asking for a justification for needing multiple, very similar OS variants since it doesn't provide much value.

There are only a couple Official Images that have chosen to do both with some parity of variations between Debian and Ubuntu, like clojure, and it seems that was to add Debian because Ubuntu snap packages are a bit of a pain in containers.

thresheek commented 8 months ago

I'm closing this one and the linked PR (https://github.com/nginxinc/docker-nginx/pull/840) for the reasons mentioned above.

Also, It's been a few months and nobody seem to have plus-oned or commented in favor of this change.