@@ -24,6 +24,7 @@ RUN apt-get update && apt-get upgrade -y && apt-get install -y \
2424 unzip \
2525 net-tools \
2626 openssh-server \
27+ zsh \
2728 libbz2-dev \
2829 libreadline-dev \
2930 libsqlite3-dev \
@@ -53,6 +54,12 @@ RUN . "$NVM_DIR/nvm.sh" \
5354 && corepack prepare yarn@stable --activate \
5455 && npm install -g bun
5556
57+ # 安装常用 AI Coding CLI 工具
58+ RUN . "$NVM_DIR/nvm.sh" \
59+ && npm install -g @anthropic-ai/claude-code \
60+ && npm install -g @google/gemini-cli \
61+ && npm install -g @openai/codex
62+
5663# 安装 pyenv
5764ENV PYENV_ROOT=/root/.pyenv
5865ENV PATH=$PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH
@@ -65,7 +72,8 @@ ENV CONDA_DIR=/opt/conda
6572RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /tmp/miniconda.sh \
6673 && bash /tmp/miniconda.sh -b -p $CONDA_DIR \
6774 && rm /tmp/miniconda.sh \
68- && $CONDA_DIR/bin/conda init bash
75+ && $CONDA_DIR/bin/conda init bash \
76+ && $CONDA_DIR/bin/conda init zsh
6977
7078ENV PATH=$CONDA_DIR/bin:$PATH
7179
@@ -155,6 +163,46 @@ RUN echo '' >> /root/.bashrc \
155163 && echo 'export GOPATH="/root/go"' >> /root/.bashrc \
156164 && echo 'export PATH="/usr/local/go/bin:$GOPATH/bin:$PATH"' >> /root/.bashrc
157165
166+ # 安装 oh-my-zsh 及插件
167+ ENV ZSH=/root/.oh-my-zsh
168+ RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended \
169+ && git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH}/custom/plugins/zsh-autosuggestions \
170+ && git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH}/custom/plugins/zsh-syntax-highlighting \
171+ && sed -i 's/^plugins=(git)/plugins=(git zsh-autosuggestions zsh-syntax-highlighting)/' /root/.zshrc
172+
173+ # 将环境变量写入 .zshrc
174+ RUN echo '' >> /root/.zshrc \
175+ && echo '# NVM configuration' >> /root/.zshrc \
176+ && echo 'export NVM_DIR="/root/.nvm"' >> /root/.zshrc \
177+ && echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> /root/.zshrc \
178+ && echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"' >> /root/.zshrc \
179+ && echo '' >> /root/.zshrc \
180+ && echo '# Pyenv configuration' >> /root/.zshrc \
181+ && echo 'export PYENV_ROOT="/root/.pyenv"' >> /root/.zshrc \
182+ && echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /root/.zshrc \
183+ && echo 'eval "$(pyenv init -)"' >> /root/.zshrc \
184+ && echo '' >> /root/.zshrc \
185+ && echo '# Conda configuration' >> /root/.zshrc \
186+ && echo 'export CONDA_DIR="/opt/conda"' >> /root/.zshrc \
187+ && echo 'export PATH="$CONDA_DIR/bin:$PATH"' >> /root/.zshrc \
188+ && echo '' >> /root/.zshrc \
189+ && echo '# SDKMAN configuration' >> /root/.zshrc \
190+ && echo 'export SDKMAN_DIR="/root/.sdkman"' >> /root/.zshrc \
191+ && echo '[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ] && source "$SDKMAN_DIR/bin/sdkman-init.sh"' >> /root/.zshrc \
192+ && echo 'export JAVA_HOME="$SDKMAN_DIR/candidates/java/current"' >> /root/.zshrc \
193+ && echo 'export PATH="$JAVA_HOME/bin:$PATH"' >> /root/.zshrc \
194+ && echo '' >> /root/.zshrc \
195+ && echo '# Maven configuration' >> /root/.zshrc \
196+ && echo 'export MAVEN_HOME="/opt/maven"' >> /root/.zshrc \
197+ && echo 'export PATH="$MAVEN_HOME/bin:$PATH"' >> /root/.zshrc \
198+ && echo '' >> /root/.zshrc \
199+ && echo '# Go configuration' >> /root/.zshrc \
200+ && echo 'export GOPATH="/root/go"' >> /root/.zshrc \
201+ && echo 'export PATH="/usr/local/go/bin:$GOPATH/bin:$PATH"' >> /root/.zshrc
202+
203+ # 设置 zsh 为默认 shell
204+ RUN chsh -s $(which zsh)
205+
158206# 显示版本信息
159207RUN echo "=== Environment Setup Complete ===" \
160208 && neofetch \
@@ -172,4 +220,4 @@ RUN echo "=== Environment Setup Complete ===" \
172220
173221WORKDIR /workspace
174222
175- CMD ["/bin/bash " ]
223+ CMD ["/bin/zsh " ]
0 commit comments