编辑文件 Dockerfile
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful

This commit is contained in:
xinian
2026-03-28 14:42:01 +08:00
committed by cnb
parent 85699b63de
commit 6c53e57517

View File

@@ -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
# 安装 code-server
RUN curl -fsSL https://code-server.dev/install.sh | sh
# install Go Tools
ENV GOPATH /root/go
ENV PATH="${PATH}:${GOPATH}/bin"
# 修复强制安装插件指定用户目录确保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
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 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
# 写入 config.toml
RUN cat > /root/.codex/config.toml <<'EOF'
model_provider = "OpenAI"
model = "gpt-5.4"
model_reasoning_effort = "high"
disable_response_storage = true
# 修复直接执行你提供的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
[model_providers.OpenAI]
name = "OpenAI"
base_url = "https://api.jucode.cn/v1"
wire_api = "responses"
requires_openai_auth = true
EOF
# 收尾清理
RUN apt clean && rm -rf /var/lib/apt/lists/*
# 写入 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