55 lines
1.9 KiB
Docker
55 lines
1.9 KiB
Docker
# 使用官方 GitHub 源镜像
|
||
FROM ghcr.io/coder/code-server:latest
|
||
|
||
# 切换 root 进行安装
|
||
USER root
|
||
|
||
# 1. 安装基础工具
|
||
RUN apt-get update && apt-get install -y \
|
||
git \
|
||
locales \
|
||
&& rm -rf /var/lib/apt/lists/* \
|
||
&& locale-gen zh_CN.UTF-8
|
||
|
||
# 设置语言环境
|
||
ENV LANG=zh_CN.UTF-8
|
||
ENV LC_ALL=zh_CN.UTF-8
|
||
|
||
# 2. [安全] 物理禁用终端
|
||
RUN usermod -s /usr/sbin/nologin coder
|
||
|
||
# 切换回 coder 用户进行插件和配置操作
|
||
USER coder
|
||
|
||
# ... (前面的步骤保持不变)
|
||
|
||
# 3. [插件] 预装必要的阅读插件
|
||
# 修正了 One Dark Pro 的 ID,并优化了安装逻辑
|
||
RUN code-server --install-extension MS-CEINTL.vscode-language-pack-zh-hans \
|
||
&& code-server --install-extension eamodio.gitlens \
|
||
&& code-server --install-extension mhutchie.git-graph \
|
||
&& code-server --install-extension pkief.material-icon-theme \
|
||
# --- [修正点] 使用正确的 ID ---
|
||
&& code-server --install-extension zhuangtongfa.Material-theme \
|
||
# ---------------------------
|
||
&& code-server --install-extension golang.Go \
|
||
&& code-server --install-extension ms-python.python
|
||
|
||
# 4. [配置] 注入设置文件
|
||
RUN mkdir -p /home/coder/.local/share/code-server/User
|
||
COPY --chown=coder:coder settings.json /home/coder/.local/share/code-server/User/settings.json
|
||
COPY --chown=coder:coder keybindings.json /home/coder/.local/share/code-server/User/keybindings.json
|
||
|
||
# 切换回 root 进行最后的“封锁”操作
|
||
USER root
|
||
|
||
# 5. [核心封锁] 锁定插件目录,禁止写入
|
||
# 将插件目录权限设为 555 (只读/执行),用户无法再安装或卸载任何东西
|
||
RUN chmod -R 555 /home/coder/.local/share/code-server/extensions
|
||
|
||
# 6. [核心封锁] 屏蔽插件市场网络 (可选)
|
||
# 通过设置环境变量,把插件市场 URL 指向空,这样搜索插件会直接报错或为空
|
||
ENV EXTENSIONS_GALLERY='{"serviceUrl": ""}'
|
||
|
||
# 最后切换回 coder 用户运行
|
||
USER coder |