File size: 1,893 Bytes
44d59d0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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