File size: 3,417 Bytes
73d8ed7
 
 
 
 
 
 
 
 
 
 
dcf0b12
73d8ed7
dcf0b12
 
 
 
73d8ed7
 
 
 
 
71b78f0
 
 
 
 
 
a657b7a
 
04913c1
 
 
 
73d8ed7
dcf0b12
73d8ed7
 
dcf0b12
1e37ab7
 
 
 
 
 
 
 
 
 
 
dcf0b12
992d635
9845156
 
 
 
 
992d635
4efdb6b
 
992d635
dcf0b12
 
 
690cf67
 
 
 
dcf0b12
690cf67
 
73d8ed7
 
 
 
f73de5f
 
c60294c
f73de5f
 
07ebf4f
 
dcf0b12
 
 
 
 
 
 
 
 
 
 
 
 
690cf67
 
ac52f25
73d8ed7
 
 
dcf0b12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
FROM codercom/code-server:latest

# 设置默认工作区
ENV DEFAULT_WORKSPACE=/home/coder/workspace

USER root

# 设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    echo "Asia/Shanghai" > /etc/timezone

# 安装常用工具 - Correção do erro de localização de pacotes
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
        ca-certificates \
        gnupg \
        software-properties-common \
        vim \
        htop \
        curl \
        wget \
        git \
        default-jdk \
        git-lfs \
        bzip2 \
        libx11-6 \
        build-essential \
        libsndfile-dev \
        zip \
        unzip \
        jq \
        iputils-ping \
        python3 \
        python3-pip \
        sudo && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# 切换官方市场
RUN jq '. += { \
  "extensionsGallery": { \
    "serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery", \
    "cacheUrl": "https://vscode.blob.core.windows.net/gallery/index", \
    "itemUrl": "https://marketplace.visualstudio.com/items", \
    "controlUrl": "", \
    "recommendationsUrl": "" \
  } \
}' /usr/lib/code-server/lib/vscode/product.json > /tmp/product.json \
 && mv /tmp/product.json /usr/lib/code-server/lib/vscode/product.json

# 指定 Go 版本号 (Atualizado para a versão estável atual ou conforme sua necessidade)
ARG GO_VERSION=1.25.1
RUN wget -q https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz && \
    tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz && \
    rm go${GO_VERSION}.linux-amd64.tar.gz

USER coder

# 将 Go 路径追加到 coder 用户的 .bashrc
RUN echo 'export PATH=/usr/local/go/bin:$PATH' >> /home/coder/.bashrc

# 安装 nvm + node
RUN mkdir -p /home/coder/.nvm && \
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash && \
    echo 'export NVM_DIR="$HOME/.nvm"' >> /home/coder/.bashrc && \
    echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> /home/coder/.bashrc && \
    echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"' >> /home/coder/.bashrc

# Instalação do Node usando o shell interativo para carregar o nvm
RUN bash -c "source /home/coder/.nvm/nvm.sh && nvm install --lts && nvm alias default node"

# 配置 ll 别名 + 启用彩色 ls
RUN echo "alias ll='ls -alF'" >> /home/coder/.bashrc && \
    echo "alias ls='ls --color=auto'" >> /home/coder/.bashrc

# 安装 VS Code 扩展
RUN code-server --install-extension ms-python.python && \
    code-server --install-extension golang.go && \
    code-server --install-extension tencent-cloud.coding-copilot

# 创建默认 README.md
RUN mkdir -p "$DEFAULT_WORKSPACE" && \
    { \
        echo "# 开发环境说明"; \
        echo ""; \
        echo "本环境已预装以下工具:"; \
        echo "- **code-server**: Web版 VS Code"; \
        echo "- **Node.js (LTS)**: 通过 nvm 管理"; \
        echo "- **Python 3 & pip**"; \
        echo "- **Go (Golang)**: Go 开发环境"; \
        echo "- **Git, Vim, curl, wget** 等常用命令行工具"; \
        echo ""; \
        echo "时区已设置为 \`Asia/Shanghai\`。"; \
    } > "$DEFAULT_WORKSPACE/README.md"

WORKDIR $DEFAULT_WORKSPACE

EXPOSE 18080

ENTRYPOINT []

CMD ["sh", "-c", "code-server --bind-addr 0.0.0.0:18080 --auth password $DEFAULT_WORKSPACE"]