ThongCoder commited on
Commit
c916b50
·
verified ·
1 Parent(s): 50a574a

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +60 -25
Dockerfile CHANGED
@@ -2,56 +2,91 @@ FROM ubuntu:22.04
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
5
- # Core tools
 
 
6
  RUN apt-get update && apt-get install -y \
7
- curl wget git unzip sudo nano bash \
8
  software-properties-common ca-certificates gnupg \
9
- build-essential g++ \
 
 
 
10
  && rm -rf /var/lib/apt/lists/*
11
 
12
- # Add deadsnakes PPA for Python 3.12
13
- RUN add-apt-repository ppa:deadsnakes/ppa -y && apt-get update
14
 
15
- # Install Python 3.12 and pip
 
 
 
16
  RUN apt-get install -y python3.12 python3.12-venv python3.12-dev \
17
  && curl -sS https://bootstrap.pypa.io/get-pip.py | python3.12
18
-
19
- # Make python3 point to python3.12
20
  RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1 \
21
  && update-alternatives --install /usr/bin/pip pip /usr/local/bin/pip3.12 1
 
 
 
 
 
 
 
 
 
 
 
 
 
22
 
23
- # Install Node.js + npm (from NodeSource)
 
 
 
 
 
 
 
 
 
 
24
  RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
25
  && apt-get install -y nodejs
26
-
27
- # Install Java (OpenJDK 17)
28
  RUN apt-get install -y openjdk-17-jdk
29
-
30
- # Install .NET SDK (C#)
31
  RUN wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \
32
  && dpkg -i packages-microsoft-prod.deb \
33
  && rm packages-microsoft-prod.deb \
34
  && apt-get update && apt-get install -y dotnet-sdk-8.0
35
 
36
- # Install code-server
 
 
37
  RUN curl -fsSL https://code-server.dev/install.sh | sh
38
 
39
- # Copy entrypoint + backup/restore
40
- COPY backup.py /backup.py
41
- COPY restore.py /restore.py
42
- COPY app.py /app.py
43
-
44
  WORKDIR /home/vscode
45
  RUN mkdir -p /home/vscode/workspace
 
 
 
46
  RUN chmod -R 777 /home
47
 
48
- # Create user
49
- RUN useradd -ms /bin/bash vscode
50
- USER vscode
 
 
 
 
51
 
 
52
  RUN pip install huggingface_hub[cli]
53
-
54
  ENV PATH=$PATH:/home/vscode/.local/bin
55
 
56
- EXPOSE 7860
57
- CMD ["python3", "/app.py"]
 
 
 
 
 
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
5
+ # -----------------------------
6
+ # Core tools + Build Essentials
7
+ # -----------------------------
8
  RUN apt-get update && apt-get install -y \
9
+ curl wget git git-lfs unzip sudo nano bash \
10
  software-properties-common ca-certificates gnupg \
11
+ build-essential g++ gfortran \
12
+ cmake ninja-build pkg-config \
13
+ llvm clang lld lldb \
14
+ valgrind gdb strace ltrace \
15
  && rm -rf /var/lib/apt/lists/*
16
 
17
+ RUN git lfs install
 
18
 
19
+ # -----------------------------
20
+ # Python 3.12
21
+ # -----------------------------
22
+ RUN add-apt-repository ppa:deadsnakes/ppa -y && apt-get update
23
  RUN apt-get install -y python3.12 python3.12-venv python3.12-dev \
24
  && curl -sS https://bootstrap.pypa.io/get-pip.py | python3.12
 
 
25
  RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1 \
26
  && update-alternatives --install /usr/bin/pip pip /usr/local/bin/pip3.12 1
27
+ RUN update-alternatives --set python3 /usr/bin/python3.12
28
+
29
+ # -----------------------------
30
+ # Rust (global)
31
+ # -----------------------------
32
+ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable --no-modify-path \
33
+ && mv /root/.cargo /usr/local/cargo \
34
+ && mv /root/.rustup /usr/local/rustup \
35
+ && ln -s /usr/local/cargo/bin/* /usr/local/bin/ \
36
+ && rm -rf /root/.cargo /root/.rustup
37
+ ENV RUSTUP_HOME=/usr/local/rustup
38
+ ENV CARGO_HOME=/usr/local/cargo
39
+ ENV PATH=/usr/local/cargo/bin:$PATH
40
 
41
+ # -----------------------------
42
+ # Go (latest stable)
43
+ # -----------------------------
44
+ RUN curl -LO https://go.dev/dl/go1.23.0.linux-amd64.tar.gz \
45
+ && tar -C /usr/local -xzf go1.23.0.linux-amd64.tar.gz \
46
+ && rm go1.23.0.linux-amd64.tar.gz
47
+ ENV PATH=/usr/local/go/bin:$PATH
48
+
49
+ # -----------------------------
50
+ # Node.js + Java + .NET
51
+ # -----------------------------
52
  RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
53
  && apt-get install -y nodejs
 
 
54
  RUN apt-get install -y openjdk-17-jdk
 
 
55
  RUN wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \
56
  && dpkg -i packages-microsoft-prod.deb \
57
  && rm packages-microsoft-prod.deb \
58
  && apt-get update && apt-get install -y dotnet-sdk-8.0
59
 
60
+ # -----------------------------
61
+ # code-server
62
+ # -----------------------------
63
  RUN curl -fsSL https://code-server.dev/install.sh | sh
64
 
65
+ # -----------------------------
66
+ # Workspace + scripts
67
+ # -----------------------------
 
 
68
  WORKDIR /home/vscode
69
  RUN mkdir -p /home/vscode/workspace
70
+ COPY restore.py /restore.py
71
+ COPY app.py /app.py
72
+ COPY backup.py /home/backup.py
73
  RUN chmod -R 777 /home
74
 
75
+ # -----------------------------
76
+ # Create vscode user
77
+ # -----------------------------
78
+ RUN useradd -ms /bin/bash vscode \
79
+ && echo "vscode:vscode" | chpasswd \
80
+ && mkdir -p /home/vscode/.ssh \
81
+ && chown -R vscode:vscode /home/vscode
82
 
83
+ USER vscode
84
  RUN pip install huggingface_hub[cli]
 
85
  ENV PATH=$PATH:/home/vscode/.local/bin
86
 
87
+ # -----------------------------
88
+ # Entrypoint: restore + code-server
89
+ # -----------------------------
90
+ CMD /bin/bash -c "\
91
+ python3 /restore.py && \
92
+ code-server --bind-addr 0.0.0.0:7860 --auth none /home/vscode/workspace"