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"]
|