cacode commited on
Commit
b0512cf
·
verified ·
1 Parent(s): c3bd350

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +29 -64
Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM debian:bookworm-slim
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
  ENV TZ=Etc/UTC
@@ -8,42 +8,28 @@ ENV PIP_DISABLE_PIP_VERSION_CHECK=1
8
  ENV PYTHONDONTWRITEBYTECODE=1
9
  ENV PYTHONUNBUFFERED=1
10
 
11
- # -----------------------------
12
- # 1) 基础系统 + 重度开发工具链
13
- # -----------------------------
 
14
  RUN apt-get update && apt-get install -y --no-install-recommends \
15
- ca-certificates curl wget git bash sudo tini gnupg dirmngr jq \
16
- unzip zip xz-utils less vim nano openssh-client \
17
- # C/C++
18
- build-essential gcc g++ make cmake ninja-build gdb lldb clang clangd pkg-config \
19
- # Python
20
- python3 python3-pip python3-venv python3-dev \
21
- # Java + build tools
22
- openjdk-17-jdk maven gradle \
23
- # Node.js
24
  nodejs npm \
25
- # 其他常用工具
26
- ripgrep fd-find procps \
27
- # rust/go(重度开发见)
28
- rustc cargo golang-go \
29
  && rm -rf /var/lib/apt/lists/*
30
 
31
- # -----------------------------
32
- # 2) 安装 code-server
33
- # -----------------------------
34
- RUN curl -fsSL https://code-server.dev/install.sh | sh
35
-
36
- # -----------------------------
37
- # 3) Node 包管理器补充
38
- # -----------------------------
39
- RUN npm install -g yarn pnpm
40
-
41
- # -----------------------------
42
- # 4) 修复 PEP668:用 venv 安装 Python 包
43
- # -----------------------------
44
- RUN python3 -m venv /opt/venv
45
- ENV PATH="/opt/venv/bin:${PATH}"
46
 
 
47
  RUN pip install --no-cache-dir --upgrade pip setuptools wheel && \
48
  pip install --no-cache-dir \
49
  numpy pandas scipy scikit-learn matplotlib seaborn plotly \
@@ -53,42 +39,21 @@ RUN pip install --no-cache-dir --upgrade pip setuptools wheel && \
53
  sqlalchemy alembic psycopg2-binary redis \
54
  pytest pytest-cov black isort mypy ruff pre-commit
55
 
56
- # -----------------------------
57
- # 5) 安装 Codex CLI(可选,失败不阻断)
58
- # -----------------------------
59
- RUN npm install -g @openai/codex || true
60
-
61
- # -----------------------------
62
- # 6) 创建运行用户
63
- # -----------------------------
64
- RUN useradd -m -u 1000 -s /bin/bash coder && \
65
- echo "coder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \
66
- mkdir -p /home/coder/.config/code-server /home/coder/.codex && \
67
- chown -R coder:coder /home/coder
68
 
69
- # -----------------------------
70
- # 7) 预装 VSCode 扩展 + Codex 插件
71
- # -----------------------------
72
- # 推荐:在 build 时传入 CODEx_VSIX_URL(例如 GitHub release 直链)
73
- # docker build --build-arg CODEX_VSIX_URL="https://.../codex.vsix" .
74
- ARG CODEX_VSIX_URL=""
75
- # 兜底:如果没有 VSIX,则尝试这些扩展 ID(可能因 OpenVSX 不可用而失败)
76
- ARG CODEX_EXTENSION_ID="openai.chatgpt"
77
 
78
- RUN su - coder -c "code-server --install-extension ms-python.python || true" && \
 
 
79
  su - coder -c "code-server --install-extension ms-toolsai.jupyter || true" && \
80
- su - coder -c "code-server --install-extension ms-vscode.cpptools || true" && \
81
  su - coder -c "code-server --install-extension llvm-vs-code-extensions.vscode-clangd || true" && \
82
- su - coder -c "code-server --install-extension vscjava.vscode-java-pack || true" && \
83
- su - coder -c "code-server --install-extension redhat.vscode-yaml || true" && \
84
- su - coder -c "code-server --install-extension esbenp.prettier-vscode || true" && \
85
- if [ -n "${CODEX_VSIX_URL}" ]; then \
86
- curl -fL "${CODEX_VSIX_URL}" -o /tmp/codex.vsix && \
87
- su - coder -c "code-server --install-extension /tmp/codex.vsix || true" && \
88
- rm -f /tmp/codex.vsix ; \
89
- else \
90
- su - coder -c "code-server --install-extension ${CODEX_EXTENSION_ID} || true" ; \
91
- fi
92
 
93
  COPY --chown=coder:coder start.sh /usr/local/bin/start.sh
94
  RUN chmod +x /usr/local/bin/start.sh
 
1
+ FROM python:3.11-slim-bookworm
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
  ENV TZ=Etc/UTC
 
8
  ENV PYTHONDONTWRITEBYTECODE=1
9
  ENV PYTHONUNBUFFERED=1
10
 
11
+ # 可固定 code-server 版本,提升可重复性
12
+ ARG CODE_SERVER_VERSION=4.109.2
13
+
14
+ # 1) 仅安装核心依赖(减重)
15
  RUN apt-get update && apt-get install -y --no-install-recommends \
16
+ ca-certificates curl git bash sudo tini \
17
+ # Java
18
+ openjdk-17-jdk-headless maven \
19
+ # Node
 
 
 
 
 
20
  nodejs npm \
21
+ # C/C++
22
+ build-essential g++ gcc make cmake ninja-build gdb clang clangd \
23
+ # 常用工具
24
+ jq procps unzip \
25
  && rm -rf /var/lib/apt/lists/*
26
 
27
+ # 2) 安装 code-server(固定版本)
28
+ 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 \
29
+ && dpkg -i /tmp/code-server.deb \
30
+ && rm -f /tmp/code-server.deb
 
 
 
 
 
 
 
 
 
 
 
31
 
32
+ # 3) Python 核心依赖(减重版)
33
  RUN pip install --no-cache-dir --upgrade pip setuptools wheel && \
34
  pip install --no-cache-dir \
35
  numpy pandas scipy scikit-learn matplotlib seaborn plotly \
 
39
  sqlalchemy alembic psycopg2-binary redis \
40
  pytest pytest-cov black isort mypy ruff pre-commit
41
 
42
+ # 4) Codex CLI
43
+ RUN npm install -g @openai/codex
 
 
 
 
 
 
 
 
 
 
44
 
45
+ # 5) 创建运行用户
46
+ RUN useradd -m -u 1000 -s /bin/bash coder \
47
+ && echo "coder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers \
48
+ && mkdir -p /home/coder/.config/code-server /home/coder/.codex \
49
+ && chown -R coder:coder /home/coder
 
 
 
50
 
51
+ # 6) 仅预装必要扩展(减少构建失败概率)
52
+ RUN su - coder -c "code-server --install-extension openai.chatgpt || true" && \
53
+ su - coder -c "code-server --install-extension ms-python.python || true" && \
54
  su - coder -c "code-server --install-extension ms-toolsai.jupyter || true" && \
 
55
  su - coder -c "code-server --install-extension llvm-vs-code-extensions.vscode-clangd || true" && \
56
+ su - coder -c "code-server --install-extension redhat.java || true"
 
 
 
 
 
 
 
 
 
57
 
58
  COPY --chown=coder:coder start.sh /usr/local/bin/start.sh
59
  RUN chmod +x /usr/local/bin/start.sh