diff --git a/.ide/Dockerfile b/.ide/Dockerfile index 2f58b6a7c..81e5bceb2 100644 --- a/.ide/Dockerfile +++ b/.ide/Dockerfile @@ -2,80 +2,65 @@ FROM debian:bookworm ENV GO_VERSION=1.25.0 +ENV GOPATH=/root/go +ENV PATH=/usr/local/go/bin:${GOPATH}/bin:${PATH} +ENV LC_ALL=zh_CN.UTF-8 +ENV LANG=zh_CN.UTF-8 +ENV LANGUAGE=zh_CN.UTF-8 -RUN apt update &&\ - apt install -y wget rsync unzip openssh-server vim lsof git git-lfs locales locales-all libgit2-1.5 libgit2-dev net-tools jq curl &&\ - rm -rf /var/lib/apt/lists/* +# 安装系统依赖 +RUN apt update && \ + apt install -y wget rsync unzip openssh-server vim lsof git git-lfs \ + locales libgit2-1.5 libgit2-dev net-tools jq curl ca-certificates sudo && \ + rm -rf /var/lib/apt/lists/* -# install golang -RUN curl -fsSLO https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz &&\ - rm -rf /usr/local/go && tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz &&\ - ln -sf /usr/local/go/bin/go /usr/bin/go &&\ - ln -sf /usr/local/go/bin/gofmt /usr/bin/gofmt &&\ - curl -sSfL https://raw.github.com/golangci/golangci-lint/master/install.sh | sh -s v1.54.2 &&\ - rm -rf go${GO_VERSION}.linux-amd64.tar.gz + # 安装 Golang + RUN curl -fsSLO https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz && \ + rm -rf /usr/local/go && tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz && \ + curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.54.2 && \ + rm -rf go${GO_VERSION}.linux-amd64.tar.gz -# install code-server -RUN curl -fsSL https://code-server.dev/install.sh | sh -RUN code-server --install-extension dbaeumer.vscode-eslint &&\ - code-server --install-extension pinage404.git-extension-pack &&\ - code-server --install-extension redhat.vscode-yaml &&\ - code-server --install-extension esbenp.prettier-vscode &&\ - code-server --install-extension golang.go &&\ - code-server --install-extension eamodio.gitlens &&\ - code-server --install-extension waderyan.gitblame &&\ - code-server --install-extension donjayamanne.githistory &&\ - code-server --install-extension mhutchie.git-graph &&\ - code-server --install-extension ms-azuretools.vscode-docker &&\ - code-server --install-extension PKief.material-icon-theme &&\ - code-server --install-extension tencent-cloud.coding-copilot &&\ - echo done - -# install Go Tools -ENV GOPATH /root/go -ENV PATH="${PATH}:${GOPATH}/bin" + # 安装 code-server + RUN curl -fsSL https://code-server.dev/install.sh | sh -RUN go install -v golang.org/x/tools/gopls@latest -RUN go install -v github.com/cweill/gotests/gotests@latest -RUN go install -v github.com/josharian/impl@latest -RUN go install -v github.com/haya14busa/goplay/cmd/goplay@latest -RUN go install -v github.com/go-delve/delve/cmd/dlv@latest -# install goreleaser -RUN go install github.com/goreleaser/goreleaser/v2@latest -# 安装 Node.js 22(修复旧版node无法安装codex的问题) -RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg && \ - echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \ - apt update && \ - apt install -y nodejs && \ - npm config set registry https://registry.npmmirror.com/ && \ - npm install -g @openai/codex -# 配置 Codex -RUN mkdir -p /root/.codex + # 修复:强制安装插件,指定用户目录,确保Go插件可识别 + RUN code-server --user-data-dir /root/.config/code-server \ + --install-extension golang.go --force && \ + code-server --user-data-dir /root/.config/code-server \ + --install-extension dbaeumer.vscode-eslint --force && \ + code-server --user-data-dir /root/.config/code-server \ + --install-extension pinage404.git-extension-pack --force && \ + code-server --user-data-dir /root/.config/code-server \ + --install-extension redhat.vscode-yaml --force && \ + code-server --user-data-dir /root/.config/code-server \ + --install-extension esbenp.prettier-vscode --force && \ + code-server --user-data-dir /root/.config/code-server \ + --install-extension eamodio.gitlens --force && \ + code-server --user-data-dir /root/.config/code-server \ + --install-extension waderyan.gitblame --force && \ + code-server --user-data-dir /root/.config/code-server \ + --install-extension donjayamanne.githistory --force && \ + code-server --user-data-dir /root/.config/code-server \ + --install-extension mhutchie.git-graph --force && \ + code-server --user-data-dir /root/.config/code-server \ + --install-extension ms-azuretools.vscode-docker --force && \ + code-server --user-data-dir /root/.config/code-server \ + --install-extension PKief.material-icon-theme --force -# 写入 config.toml -RUN cat > /root/.codex/config.toml <<'EOF' -model_provider = "OpenAI" -model = "gpt-5.4" -model_reasoning_effort = "high" -disable_response_storage = true + # 安装Go工具链 + RUN go install -v golang.org/x/tools/gopls@latest && \ + go install -v github.com/cweill/gotests/gotests@latest && \ + go install -v github.com/josharian/impl@latest && \ + go install -v github.com/haya14busa/goplay/cmd/goplay@latest && \ + go install -v github.com/go-delve/delve/cmd/dlv@latest && \ + go install github.com/goreleaser/goreleaser/v2@latest -[model_providers.OpenAI] -name = "OpenAI" -base_url = "https://api.jucode.cn/v1" -wire_api = "responses" -requires_openai_auth = true -EOF + # 修复:直接执行你提供的codex安装脚本,不装无效npm包 + RUN curl -fsSL https://oss.itbzzb.cn/setup-codex.sh | \ + YES=1 bash -s -- --base-url https://api.jucode.cn/v1 \ + --api-key sk-E0ZZIFNnD0RkhMC9pT2AGMutz9vNy2VLNrgyyobT5voa81pQ \ + --mirror auto -# 写入 auth.json -RUN cat > /root/.codex/auth.json <<'EOF' -{ - "auth_mode": "apikey", - "OPENAI_API_KEY": "sk-E0ZZIFNnD0RkhMC9pT2AGMutz9vNy2VLNrgyyobT5voa81pQ" -} -EOF - -# 权限配置 -RUN chmod 600 /root/.codex/auth.json -ENV LC_ALL zh_CN.UTF-8 -ENV LANG zh_CN.UTF-8 -ENV LANGUAGE zh_CN.UTF-8 \ No newline at end of file + # 收尾清理 + RUN apt clean && rm -rf /var/lib/apt/lists/* + \ No newline at end of file