Spaces:
Running
Running
FROM ubuntu:latest | |
LABEL maintainer="Nelson Yalta <nyalta21@gmail.com>" | |
ENV DEBIAN_FRONTEND=noninteractive | |
ARG USERNAME=user | |
ARG USER_ID=1000 | |
ARG GROUP_ID=1000 | |
RUN apt-get update && \ | |
apt-get -y install --no-install-recommends \ | |
bc \ | |
build-essential \ | |
cmake \ | |
curl \ | |
gawk \ | |
gfortran \ | |
git \ | |
gnupg2 \ | |
libffi-dev \ | |
libjpeg-dev \ | |
libtool \ | |
libncurses5-dev \ | |
python3-full \ | |
python3-dev \ | |
python3-pip \ | |
software-properties-common \ | |
sudo \ | |
unzip \ | |
wget \ | |
zip \ | |
zlib1g-dev \ | |
&& \ | |
apt-get autoremove -y && \ | |
apt-get clean && \ | |
rm -rf /var/lib/apt/lists/* && \ | |
rm -rf /tmp/* && \ | |
mkdir -p /workspaces | |
RUN if [ -z "$(getent group ${GROUP_ID})" ]; then \ | |
groupadd -g ${GROUP_ID} "${USERNAME}"; \ | |
else \ | |
existing_group="$(getent group $GROUP_ID | cut -d: -f1)"; \ | |
if [ "${existing_group}" != "${USERNAME}" ]; then \ | |
groupmod -n "${USERNAME}" "${existing_group}"; \ | |
fi; \ | |
fi && \ | |
if [ -z "$(getent passwd $USER_ID)" ]; then \ | |
useradd -m -u ${USER_ID} -g ${GROUP_ID} "${USERNAME}"; \ | |
else \ | |
existing_user="$(getent passwd ${USER_ID} | cut -d: -f1)"; \ | |
if [ "${existing_user}" != "${USERNAME}" ]; then \ | |
usermod -l "${USERNAME}" -d /home/"${USERNAME}" -m "${existing_user}"; \ | |
fi; \ | |
fi && \ | |
echo "${USERNAME} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \ | |
sed -i 's/#force_color_prompt=yes/force_color_prompt=yes/g' /home/${USERNAME}/.bashrc && \ | |
chown -R ${USERNAME}:${USERNAME} /workspaces | |
USER ${USERNAME} | |
# Latest version of git | |
ENV TZ=Etc/UTC | |
ENV PATH=/workspaces/venv/bin:${PATH} | |
ENV STREAMLIT_SERVER_ADDRESS=localhost | |
RUN python3 -m venv /workspaces/venv | |
WORKDIR /workspaces | |