realipaduser commited on
Commit
7452af2
·
verified ·
1 Parent(s): 68872e1

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +21 -97
Dockerfile CHANGED
@@ -1,107 +1,31 @@
1
- FROM nvidia/cuda:11.3.1-base-ubuntu20.04
2
 
3
- ENV DEBIAN_FRONTEND=noninteractive \
4
- TZ=Europe/Paris
 
5
 
6
- # Remove any third-party apt sources to avoid issues with expiring keys.
7
- # Install some basic utilities
8
- RUN rm -f /etc/apt/sources.list.d/*.list && \
9
- apt-get update && apt-get install -y --no-install-recommends \
10
- curl \
11
- ca-certificates \
12
- sudo \
13
- git \
14
- wget \
15
- procps \
16
- git-lfs \
17
- zip \
18
- unzip \
19
- htop \
20
- vim \
21
- nano \
22
- bzip2 \
23
- libx11-6 \
24
- build-essential \
25
- libsndfile-dev \
26
- software-properties-common \
27
- && rm -rf /var/lib/apt/lists/*
28
 
29
- RUN add-apt-repository ppa:flexiondotorg/nvtop && \
30
- apt-get upgrade -y && \
31
- apt-get install -y --no-install-recommends nvtop
32
 
33
- RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - && \
34
- apt-get install -y nodejs && \
35
- npm install -g configurable-http-proxy
36
 
37
- # Create a working directory
38
- WORKDIR /app
39
-
40
- # Create a non-root user and switch to it
41
- RUN adduser --disabled-password --gecos '' --shell /bin/bash user \
42
- && chown -R user:user /app
43
- RUN echo "user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/90-user
44
  USER user
45
 
46
- # All users can use /home/user as their home directory
47
- ENV HOME=/home/user
48
- RUN mkdir $HOME/.cache $HOME/.config \
49
- && chmod -R 777 $HOME
50
-
51
- # Set up the Conda environment
52
- ENV CONDA_AUTO_UPDATE_CONDA=false \
53
- PATH=$HOME/miniconda/bin:$PATH
54
- RUN curl -sLo ~/miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-py39_4.10.3-Linux-x86_64.sh \
55
- && chmod +x ~/miniconda.sh \
56
- && ~/miniconda.sh -b -p ~/miniconda \
57
- && rm ~/miniconda.sh \
58
- && conda clean -ya
59
-
60
- WORKDIR $HOME/app
61
-
62
- # Start root user section
63
- #######################################
64
-
65
- USER root
66
-
67
- # Remount the filesystem without nosuid
68
- RUN mount -o remount,rw /
69
-
70
- # User Debian packages
71
- ## Security warning: Potential user code executed as root (build time)
72
- RUN --mount=target=/root/packages.txt,source=packages.txt \
73
- apt-get update && \
74
- xargs -r -a /root/packages.txt apt-get install -y --no-install-recommends \
75
- && rm -rf /var/lib/apt/lists/*
76
-
77
- RUN --mount=target=/root/on_startup.sh,source=on_startup.sh,readwrite \
78
- bash /root/on_startup.sh
79
-
80
- RUN mkdir /data && chown user:user /data
81
-
82
- #######################################
83
- # End root user section
84
- #######################################
85
-
86
- USER root
87
-
88
- # Python packages
89
- RUN --mount=target=requirements.txt,source=requirements.txt \
90
- pip install --no-cache-dir --upgrade -r requirements.txt
91
-
92
- # Copy the current directory contents into the container at $HOME/app setting the owner to the user
93
- COPY --chown=user . $HOME/app
94
-
95
- RUN chmod +x start_server.sh
96
 
97
- COPY --chown=user login.html /home/user/miniconda/lib/python3.9/site-packages/jupyter_server/templates/login.html
 
98
 
99
- ENV PYTHONUNBUFFERED=1 \
100
- GRADIO_ALLOW_FLAGGING=never \
101
- GRADIO_NUM_PORTS=1 \
102
- GRADIO_SERVER_NAME=0.0.0.0 \
103
- GRADIO_THEME=huggingface \
104
- SYSTEM=spaces \
105
- SHELL=/bin/bash
106
 
107
- CMD ["./start_server.sh"]
 
 
1
+ FROM ubuntu:20.04
2
 
3
+ # Update and install necessary packages, including sudo
4
+ RUN apt-get update && \
5
+ apt-get install -y sudo curl
6
 
7
+ # Create a new user with sudo privileges
8
+ RUN useradd -m -s /bin/bash user && \
9
+ echo "user:user" | chpasswd && \
10
+ adduser user sudo
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
12
+ # Install code-server
13
+ RUN curl -fsSL https://code-server.dev/install.sh | sh
 
14
 
15
+ # Expose port 7860 for code-server
16
+ EXPOSE 7860
 
17
 
18
+ # Switch to the new user
 
 
 
 
 
 
19
  USER user
20
 
21
+ # Set the working directory
22
+ WORKDIR /home/user
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
+ # Create a directory for code-server config
25
+ RUN mkdir -p ~/.config/code-server
26
 
27
+ # Create a basic config file for code-server
28
+ RUN echo 'bind-addr: 0.0.0.0:7860\nauth: none\npassword: ""\ncert: false' > ~/.config/code-server/config.yaml
 
 
 
 
 
29
 
30
+ # Run code-server on port 7860 as the new user
31
+ CMD ["code-server", "--port", "7860"]