python icon indicating copy to clipboard operation
python copied to clipboard

duplicate path in $PATH

Open dotysan opened this issue 1 year ago • 2 comments

Minor nit. We blindly prepend /usr/local/bin onto the $PATH without looking to see if it's already there. This leads to duplication.

docker run --rm -it python:3.12-slim

Python 3.12.1 (main, Jan 11 2024, 10:03:43) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ['PATH']
'/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'

Expected output: /usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin

Or possibly the original path is fine? Since /usr/local/sbin already occurs before /usr/bin and /bin.

This applies to all the base images in here. They all come with PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin for the root user.

dotysan avatar Jan 17 '24 02:01 dotysan

We prepend to PATH to ensure that the Python we just installed there is definitely 100% the Python folks will get if they rely on PATH expansion (and because duplicates are otherwise harmless).

tianon avatar Jan 17 '24 19:01 tianon

Yes, I get it. Minor nit, indeed.

However, on all base images currently used, one would have to install python in /usr/local/sbin for any change in behavior. Which is astronomically unlikely.

I propose the ENV PATH /usr/local/bin:$PATH line in all Dockerfile here be removed entirely, as it is superfluous.

dotysan avatar Jan 18 '24 03:01 dotysan