87 lines
2.7 KiB
Go
87 lines
2.7 KiB
Go
# 此文件为远程开发环境配置文件
|
||
FROM debian:bookworm
|
||
|
||
ARG DEBIAN_FRONTEND=noninteractive
|
||
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 libgit2-1.5 libgit2-dev net-tools jq curl ca-certificates sudo && \
|
||
sed -i 's/# zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen && \
|
||
locale-gen && \
|
||
rm -rf /var/lib/apt/lists/*
|
||
|
||
# 安装 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
|
||
|
||
# 安装 code-server
|
||
RUN curl -fsSL https://code-server.dev/install.sh | sh
|
||
|
||
|
||
|
||
# 安装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
|
||
|
||
RUN set -eux; \
|
||
for ext in \
|
||
dbaeumer.vscode-eslint \
|
||
pinage404.git-extension-pack \
|
||
redhat.vscode-yaml \
|
||
esbenp.prettier-vscode \
|
||
golang.go \
|
||
eamodio.gitlens \
|
||
waderyan.gitblame \
|
||
donjayamanne.githistory \
|
||
mhutchie.git-graph \
|
||
ms-azuretools.vscode-docker \
|
||
PKief.material-icon-theme \
|
||
tencent-cloud.coding-copilot; do \
|
||
code-server --install-extension "${ext}" --force; \
|
||
done; \
|
||
echo done
|
||
|
||
# 直接在 Dockerfile 内联安装并配置 codex,避免依赖外部 setup 脚本
|
||
RUN set -eux; \
|
||
curl -fsSL https://deb.nodesource.com/setup_22.x | bash -; \
|
||
apt-get install -y nodejs; \
|
||
npm config set registry https://registry.npmmirror.com/; \
|
||
npm install -g @openai/codex; \
|
||
mkdir -p /root/.codex; \
|
||
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
|
||
cat > /root/.codex/auth.json <<'EOF'
|
||
{
|
||
"auth_mode": "apikey",
|
||
"OPENAI_API_KEY": "sk-E0ZZIFNnD0RkhMC9pT2AGMutz9vNy2VLNrgyyobT5voa81pQ"
|
||
}
|
||
EOF
|
||
chmod 600 /root/.codex/auth.json
|
||
|
||
|
||
# 最后再清理(必须放在插件安装之后)
|
||
RUN apt clean && rm -rf /var/lib/apt/lists/*
|