Files
bl/.ide/Dockerfile
xinian f4f2bf8908
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
编辑文件 Dockerfile
2026-03-28 13:04:36 +08:00

92 lines
3.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 远程开发环境完整配置
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/*