godlikeme commited on
Commit
f099f9f
·
verified ·
1 Parent(s): aa70147
Files changed (2) hide show
  1. Dockerfile +94 -0
  2. README.md +6 -4
Dockerfile ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM codercom/code-server:latest
2
+
3
+ # 设置默认工作区
4
+ ENV DEFAULT_WORKSPACE=/home/coder/workspace
5
+
6
+ USER root
7
+
8
+ # 设置时区
9
+ RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
10
+ echo "Asia/Shanghai" > /etc/timezone
11
+
12
+ # 安装常用工具
13
+ RUN apt-get update && \
14
+ apt-get install -y \
15
+ vim \
16
+ htop \
17
+ curl \
18
+ wget \
19
+ git \
20
+ zip \
21
+ unzip \
22
+ jq \
23
+ iputils-ping \
24
+ python3 \
25
+ python3-pip \
26
+ sudo && \
27
+ rm -rf /var/lib/apt/lists/*
28
+
29
+ # 切换官方市场(使用 jq 向 product.json 追加 extensionsGallery 字段)
30
+ RUN jq '. += { \
31
+ "extensionsGallery": { \
32
+ "serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery", \
33
+ "cacheUrl": "https://vscode.blob.core.windows.net/gallery/index", \
34
+ "itemUrl": "https://marketplace.visualstudio.com/items", \
35
+ "controlUrl": "", \
36
+ "recommendationsUrl": "" \
37
+ } \
38
+ }' /usr/lib/code-server/lib/vscode/product.json > /tmp/product.json \
39
+ && mv /tmp/product.json /usr/lib/code-server/lib/vscode/product.json
40
+
41
+ # 安装最新 Go
42
+ RUN GO_VERSION=$(curl -s https://go.dev/VERSION?m=text | head -n1) && \
43
+ wget -q https://go.dev/dl/${GO_VERSION}.linux-amd64.tar.gz && \
44
+ tar -C /usr/local -xzf ${GO_VERSION}.linux-amd64.tar.gz && \
45
+ rm ${GO_VERSION}.linux-amd64.tar.gz
46
+
47
+ USER coder
48
+
49
+ # 将 Go 路径追加到 coder 用户的 .bashrc
50
+ RUN echo 'export PATH=/usr/local/go/bin:$PATH' >> /home/coder/.bashrc
51
+
52
+ # 安装 nvm + node(使用官方安装脚本)
53
+ # 注意:必须在 coder 用户下安装 nvm,因为 nvm 是用户级工具
54
+ RUN mkdir -p /home/coder/.nvm
55
+
56
+ # 安装最新 nvm
57
+ RUN NVM_VERSION=$(curl -s https://api.github.com/repos/nvm-sh/nvm/releases/latest | jq -r .tag_name) && \
58
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh | bash && \
59
+ echo 'export NVM_DIR="$HOME/.nvm"' >> /home/coder/.bashrc && \
60
+ echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> /home/coder/.bashrc && \
61
+ echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"' >> /home/coder/.bashrc
62
+
63
+ # 安装最新 LTS Node.js
64
+ RUN bash -c "source /home/coder/.nvm/nvm.sh && nvm install --lts && nvm alias default node"
65
+
66
+ # 配置 ll 别名 + 启用彩色 ls
67
+ RUN echo "alias ll='ls -alF'" >> /home/coder/.bashrc && \
68
+ echo "alias ls='ls --color=auto'" >> /home/coder/.bashrc
69
+
70
+ # 安装 VS Code 扩展
71
+ RUN code-server --install-extension ms-python.python && \
72
+ code-server --install-extension golang.go
73
+
74
+ # 创建默认 README.md
75
+ RUN mkdir -p "$DEFAULT_WORKSPACE" && \
76
+ echo "# 开发环境说明" > "$DEFAULT_WORKSPACE/README.md" && \
77
+ echo "" >> "$DEFAULT_WORKSPACE/README.md" && \
78
+ echo "本环境已预装以下工具:" >> "$DEFAULT_WORKSPACE/README.md" && \
79
+ echo "- **code-server**: Web版 VS Code" >> "$DEFAULT_WORKSPACE/README.md" && \
80
+ echo "- **Node.js (LTS)**: 通过 nvm 管理" >> "$DEFAULT_WORKSPACE/README.md" && \
81
+ echo "- **Python 3 & pip**" >> "$DEFAULT_WORKSPACE/README.md" && \
82
+ echo "- **Go (Golang)**: Go 开发环境" >> "$DEFAULT_WORKSPACE/README.md" && \
83
+ echo "- **Git, Vim, curl, wget** 等常用命令行工具" >> "$DEFAULT_WORKSPACE/README.md" && \
84
+ echo "" >> "$DEFAULT_WORKSPACE/README.md" && \
85
+ echo "时区已设置为 \`Asia/Shanghai\`。" >> "$DEFAULT_WORKSPACE/README.md"
86
+
87
+ # 设置默认打开工作区
88
+ WORKDIR $DEFAULT_WORKSPACE
89
+
90
+ EXPOSE 18080
91
+
92
+ ENTRYPOINT []
93
+
94
+ CMD ["sh", "-c", "code-server --bind-addr 0.0.0.0:18080 --auth password $DEFAULT_WORKSPACE"]
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
  title: Vscode
3
- emoji: 🏃
4
- colorFrom: pink
5
- colorTo: blue
6
  sdk: docker
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
  title: Vscode
3
+ emoji: 💻
4
+ colorFrom: yellow
5
+ colorTo: green
6
  sdk: docker
7
  pinned: false
8
+ short_description: code-server
9
+ app_port: 18080
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference