Spaces:
Paused
Paused
Upload 2 files
Browse files- Dockerfile +9 -6
- start.sh +6 -1
Dockerfile
CHANGED
|
@@ -12,20 +12,23 @@ ARG CODE_SERVER_VERSION=4.109.2
|
|
| 12 |
|
| 13 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 14 |
ca-certificates curl git bash sudo tini jq procps unzip \
|
| 15 |
-
# C/C++
|
| 16 |
build-essential gcc g++ make cmake ninja-build gdb clang clangd \
|
| 17 |
libc6-dev linux-libc-dev pkg-config \
|
| 18 |
# Java + Node
|
| 19 |
openjdk-17-jdk-headless maven \
|
| 20 |
nodejs npm \
|
|
|
|
|
|
|
|
|
|
| 21 |
&& rm -rf /var/lib/apt/lists/*
|
| 22 |
|
| 23 |
-
#
|
| 24 |
RUN curl -fsSL "https://github.com/coder/code-server/releases/download/v${CODE_SERVER_VERSION}/code-server_${CODE_SERVER_VERSION}_amd64.deb" -o /tmp/code-server.deb \
|
| 25 |
&& dpkg -i /tmp/code-server.deb \
|
| 26 |
&& rm -f /tmp/code-server.deb
|
| 27 |
|
| 28 |
-
# Python
|
| 29 |
RUN pip install --no-cache-dir --upgrade pip setuptools wheel && \
|
| 30 |
pip install --no-cache-dir \
|
| 31 |
numpy pandas scipy scikit-learn matplotlib \
|
|
@@ -38,13 +41,13 @@ RUN pip install --no-cache-dir --upgrade pip setuptools wheel && \
|
|
| 38 |
# Codex CLI
|
| 39 |
RUN npm install -g @openai/codex && npm cache clean --force
|
| 40 |
|
| 41 |
-
#
|
| 42 |
RUN useradd -m -u 1000 -s /bin/bash coder \
|
| 43 |
&& echo "coder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers \
|
| 44 |
&& mkdir -p /home/coder/.config/code-server /home/coder/.codex \
|
| 45 |
&& chown -R coder:coder /home/coder
|
| 46 |
|
| 47 |
-
#
|
| 48 |
RUN printf '#include <stdio.h>\nint main(){puts("ok");return 0;}\n' > /tmp/t.c \
|
| 49 |
&& gcc /tmp/t.c -o /tmp/t \
|
| 50 |
&& /tmp/t | grep -q ok \
|
|
@@ -58,4 +61,4 @@ WORKDIR /home/coder
|
|
| 58 |
|
| 59 |
EXPOSE 7860
|
| 60 |
ENTRYPOINT ["/usr/bin/tini", "--"]
|
| 61 |
-
CMD ["/usr/local/bin/start.sh"]
|
|
|
|
| 12 |
|
| 13 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 14 |
ca-certificates curl git bash sudo tini jq procps unzip \
|
| 15 |
+
# C/C++ toolchain + headers
|
| 16 |
build-essential gcc g++ make cmake ninja-build gdb clang clangd \
|
| 17 |
libc6-dev linux-libc-dev pkg-config \
|
| 18 |
# Java + Node
|
| 19 |
openjdk-17-jdk-headless maven \
|
| 20 |
nodejs npm \
|
| 21 |
+
# Rust + Go
|
| 22 |
+
rustc cargo rustfmt clippy \
|
| 23 |
+
golang-go \
|
| 24 |
&& rm -rf /var/lib/apt/lists/*
|
| 25 |
|
| 26 |
+
# Install code-server (pinned version)
|
| 27 |
RUN curl -fsSL "https://github.com/coder/code-server/releases/download/v${CODE_SERVER_VERSION}/code-server_${CODE_SERVER_VERSION}_amd64.deb" -o /tmp/code-server.deb \
|
| 28 |
&& dpkg -i /tmp/code-server.deb \
|
| 29 |
&& rm -f /tmp/code-server.deb
|
| 30 |
|
| 31 |
+
# Python core deps
|
| 32 |
RUN pip install --no-cache-dir --upgrade pip setuptools wheel && \
|
| 33 |
pip install --no-cache-dir \
|
| 34 |
numpy pandas scipy scikit-learn matplotlib \
|
|
|
|
| 41 |
# Codex CLI
|
| 42 |
RUN npm install -g @openai/codex && npm cache clean --force
|
| 43 |
|
| 44 |
+
# Create user
|
| 45 |
RUN useradd -m -u 1000 -s /bin/bash coder \
|
| 46 |
&& echo "coder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers \
|
| 47 |
&& mkdir -p /home/coder/.config/code-server /home/coder/.codex \
|
| 48 |
&& chown -R coder:coder /home/coder
|
| 49 |
|
| 50 |
+
# Quick C build check (build-time)
|
| 51 |
RUN printf '#include <stdio.h>\nint main(){puts("ok");return 0;}\n' > /tmp/t.c \
|
| 52 |
&& gcc /tmp/t.c -o /tmp/t \
|
| 53 |
&& /tmp/t | grep -q ok \
|
|
|
|
| 61 |
|
| 62 |
EXPOSE 7860
|
| 63 |
ENTRYPOINT ["/usr/bin/tini", "--"]
|
| 64 |
+
CMD ["/usr/local/bin/start.sh"]
|
start.sh
CHANGED
|
@@ -103,6 +103,8 @@ if [[ ! -f "${EXT_MARKER}" ]]; then
|
|
| 103 |
install_ext ms-vscode.cpp-devtools
|
| 104 |
install_ext ms-vscode.cmake-tools
|
| 105 |
install_ext danielpinto8zz6.c-cpp-compile-run
|
|
|
|
|
|
|
| 106 |
install_ext redhat.java
|
| 107 |
install_ext vscjava.vscode-java-debug
|
| 108 |
install_ext vscjava.vscode-java-test
|
|
@@ -131,10 +133,13 @@ echo "[INFO] Python: $(python --version || true)"
|
|
| 131 |
echo "[INFO] Pip: $(pip --version || true)"
|
| 132 |
echo "[INFO] Node: $(node --version || true)"
|
| 133 |
echo "[INFO] g++: $(g++ --version | head -n1 || true)"
|
|
|
|
|
|
|
|
|
|
| 134 |
|
| 135 |
exec code-server "$WORKDIR" \
|
| 136 |
--extensions-dir "$EXT_DIR" \
|
| 137 |
--user-data-dir "$USER_DATA_DIR" \
|
| 138 |
--disable-telemetry \
|
| 139 |
--disable-update-check \
|
| 140 |
-
--log warn
|
|
|
|
| 103 |
install_ext ms-vscode.cpp-devtools
|
| 104 |
install_ext ms-vscode.cmake-tools
|
| 105 |
install_ext danielpinto8zz6.c-cpp-compile-run
|
| 106 |
+
install_ext golang.go
|
| 107 |
+
install_ext rust-lang.rust-analyzer
|
| 108 |
install_ext redhat.java
|
| 109 |
install_ext vscjava.vscode-java-debug
|
| 110 |
install_ext vscjava.vscode-java-test
|
|
|
|
| 133 |
echo "[INFO] Pip: $(pip --version || true)"
|
| 134 |
echo "[INFO] Node: $(node --version || true)"
|
| 135 |
echo "[INFO] g++: $(g++ --version | head -n1 || true)"
|
| 136 |
+
echo "[INFO] Rust: $(rustc --version || true)"
|
| 137 |
+
echo "[INFO] Cargo: $(cargo --version || true)"
|
| 138 |
+
echo "[INFO] Go: $(go version || true)"
|
| 139 |
|
| 140 |
exec code-server "$WORKDIR" \
|
| 141 |
--extensions-dir "$EXT_DIR" \
|
| 142 |
--user-data-dir "$USER_DATA_DIR" \
|
| 143 |
--disable-telemetry \
|
| 144 |
--disable-update-check \
|
| 145 |
+
--log warn
|