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

93 lines
3.3 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}:/usr/local/go/bin:${GOPATH}/bin
ENV LC_ALL=zh_CN.UTF-8
ENV LANG=zh_CN.UTF-8
ENV LANGUAGE=zh_CN.UTF-8
# 1. 安装系统依赖最基础先做
RUN apt-get update && \
apt-get install -y --no-install-recommends \
wget rsync unzip openssh-server vim lsof git git-lfs \
locales locales-all libgit2-1.5 libgit2-dev net-tools jq curl \
ca-certificates gnupg lsb-release sudo && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# 2. 安装 Go
RUN wget -q 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 && \
rm go${GO_VERSION}.linux-amd64.tar.gz
# 3. 安装 golangci-lint
RUN curl -sSfL https://raw.github.com/golangci/golangci-lint/master/install.sh | sh -s v1.54.2
# 4. 安装 code-server
RUN curl -fsSL https://code-server.dev/install.sh | sh
# 5. 安装 code-server 插件
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
# 6. 安装 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
# 7. 安装 Node.js (使用 npmmirror )
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && \
apt-get install -y nodejs && \
npm config set registry https://registry.npmmirror.com/
# 8. 安装 Codex CLI
RUN npm install -g @openai/codex
# 9. 配置 Codex (硬编码配置零变量冲突)
RUN mkdir -p /root/.codex
# 写入 config.toml
RUN cat > /root/.codex/config.toml << 'EOF'
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
EOF
# 写入 auth.json (直接把 Key 写在这里避免转义)
RUN cat > /root/.codex/auth.json << 'EOF'
{
"auth_mode": "apikey",
"OPENAI_API_KEY": "sk-E0ZZIFNnD0RkhMC9pT2AGMutz9vNy2VLNrgyyobT5voa81pQ"
}
EOF
# 10. 配置环境变量和权限
RUN chmod 600 /root/.codex/auth.json && \
echo 'export OPENAI_API_KEY="sk-E0ZZIFNnD0RkhMC9pT2AGMutz9vNy2VLNrgyyobT5voa81pQ"' >> /root/.bashrc && \
echo 'export CODEX_API_KEY="sk-E0ZZIFNnD0RkhMC9pT2AGMutz9vNy2VLNrgyyobT5voa81pQ"' >> /root/.bashrc