FROM debian:12.11
 
ARG U_NAME="user"
ARG U_ID="1000"
RUN adduser --disabled-password --gecos '' --uid ${U_ID} ${U_NAME}
 
 
WORKDIR /home/${U_NAME}
 
 
#=================================#
# compile our own Python
 
USER root
RUN apt-get update && apt-get install -y \
		build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev \
		wget \
		sudo \
		# !! must be installed _before_ Python compile for proper linking
		lzma liblzma-dev \
	&& rm -rf /var/lib/apt/lists/*
 
 
# !! temp sudo for userspace build/install
RUN adduser ${U_NAME} sudo
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
 
 
USER ${U_NAME}
 
ARG THE_PY_3_VER="3.13.5"
 
RUN wget https://www.python.org/ftp/python/${THE_PY_3_VER}/Python-${THE_PY_3_VER}.tgz
RUN \
	tar -xvf Python-${THE_PY_3_VER}.tgz && \
	cd Python-${THE_PY_3_VER} && \
	./configure --enable-optimizations \
		# !! for pyinstaller
		#--enable-shared \
		--prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" \
		&& \
	sudo make -j 4 && \
	sudo make altinstall && \
	cd /home/${U_NAME} && sudo rm -rf ./Python-${THE_PY_3_VER}.tgz ./Python-${THE_PY_3_VER}
 
 
# !! undo permission elevate
USER root
RUN deluser ${U_NAME} sudo
 
#=================================#