92 lines
3.4 KiB
Go
92 lines
3.4 KiB
Go
# 远程开发环境完整配置
|
||
FROM debian:bookworm
|
||
|
||
ENV GO_VERSION=1.25.0
|
||
ENV GOPATH /root/go
|
||
ENV PATH="${PATH}:${GOPATH}/bin"
|
||
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 sudo lsb-release && \
|
||
rm -rf /var/lib/apt/lists/*
|
||
|
||
# 安装 Golang + golangci-lint
|
||
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
|
||
|
||
# 安装 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
|
||
|
||
# 安装 Go 开发工具
|
||
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
|
||
RUN go install github.com/goreleaser/goreleaser/v2@latest
|
||
|
||
# ===================== 修复完成:安装并配置 Codex =====================
|
||
RUN set -eux && \
|
||
# 基础配置
|
||
BASE_URL="https://api.jucode.cn/v1" && \
|
||
API_KEY="sk-E0ZZIFNnD0RkhMC9pT2AGMutz9vNy2VLNrgyyobT5voa81pQ" && \
|
||
CODEX_DIR="/root/.codex" && \
|
||
CONFIG_FILE="${CODEX_DIR}/config.toml" && \
|
||
AUTH_FILE="${CODEX_DIR}/auth.json" && \
|
||
# 安装 Node.js
|
||
curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && \
|
||
apt-get install -y nodejs && \
|
||
# 配置 npm 镜像
|
||
npm config set registry https://registry.npmmirror.com/ && \
|
||
# 安装 Codex
|
||
npm install -g @openai/codex && \
|
||
# 创建配置目录
|
||
mkdir -p "${CODEX_DIR}" && \
|
||
# 写入 config.toml
|
||
cat > "${CONFIG_FILE}" << 'EOT'
|
||
model_provider = "OpenAI"
|
||
model = "gpt-5.4"
|
||
model_reasoning_effort = "high"
|
||
disable_response_storage = true
|
||
|
||
[model_providers.OpenAI]
|
||
name = "OpenAI"
|
||
base_url = "https://api.jucode.cn/v1"
|
||
wire_api = "responses"
|
||
requires_openai_auth = true
|
||
EOT
|
||
&& \
|
||
# 写入 auth.json
|
||
cat > "${AUTH_FILE}" << EOT
|
||
{
|
||
"auth_mode": "apikey",
|
||
"OPENAI_API_KEY": "${API_KEY}"
|
||
}
|
||
EOT
|
||
&& \
|
||
# 权限配置
|
||
chmod 600 "${AUTH_FILE}" && \
|
||
# 写入环境变量
|
||
echo "export OPENAI_API_KEY=\"${API_KEY}\"" >> /root/.bashrc && \
|
||
echo "export CODEX_API_KEY=\"${API_KEY}\"" >> /root/.bashrc && \
|
||
# 清理
|
||
apt clean && rm -rf /var/lib/apt/lists/*
|