diff --git a/backend/internal/database/database.go b/backend/internal/database/database.go index f098dc6..b0f9a06 100644 --- a/backend/internal/database/database.go +++ b/backend/internal/database/database.go @@ -224,7 +224,7 @@ func seedResources() { } } -// seedTools 工具清单(CheckCommand 为真实版本探测命令,安装走保守检测策略) +// seedTools 工具清单(Ubuntu 构建环境导向;Node 由 nvm 管理默认版本,构建时可按需 nvm install) func seedTools() { var n int64 DB.Model(&model.DeployTool{}).Count(&n) @@ -232,11 +232,12 @@ func seedTools() { return } DB.Create([]model.DeployTool{ - {ToolKey: "jdk", DisplayName: "JDK", Category: "build", Version: "17", InstallMode: "preinstalled", Path: "/usr/lib/jvm/java-17", CheckCommand: "java -version", SortOrder: 1}, - {ToolKey: "maven", DisplayName: "Maven", Category: "build", Version: "3.9", InstallMode: "lazy", Path: "/opt/maven", CheckCommand: "mvn -version", SortOrder: 2}, - {ToolKey: "golang", DisplayName: "Golang", Category: "build", Version: "1.24", InstallMode: "preinstalled", Path: "/usr/local/go", CheckCommand: "go version", SortOrder: 3}, - {ToolKey: "nodejs", DisplayName: "Node.js", Category: "build", Version: "20", InstallMode: "lazy", Path: "/usr/local/nvm", CheckCommand: "node -v", SortOrder: 4}, - {ToolKey: "git", DisplayName: "Git", Category: "build", Version: "2.40", InstallMode: "preinstalled", Path: "/usr/bin/git", CheckCommand: "git --version", SortOrder: 5}, - {ToolKey: "docker-cli", DisplayName: "Docker CLI", Category: "deploy", Version: "26", InstallMode: "lazy", Path: "/usr/bin/docker", CheckCommand: "docker --version", SortOrder: 6}, + {ToolKey: "jdk", DisplayName: "JDK", Category: "build", Version: "17", InstallMode: "preinstalled", Path: "/usr/lib/jvm/java-17-openjdk-amd64", CheckCommand: "java -version", InstallHint: "apt update && apt install -y openjdk-17-jdk", SortOrder: 1}, + {ToolKey: "maven", DisplayName: "Maven", Category: "build", Version: "3.8", InstallMode: "lazy", Path: "/usr/share/maven", CheckCommand: "mvn -version", InstallHint: "apt install -y maven", SortOrder: 2}, + {ToolKey: "golang", DisplayName: "Golang", Category: "build", Version: "1.24", InstallMode: "preinstalled", Path: "/usr/local/go", CheckCommand: "go version", InstallHint: "apt install -y golang-1.24-go 或官方 tar 包解压至 /usr/local/go", SortOrder: 3}, + {ToolKey: "nvm", DisplayName: "nvm(Node 版本管理)", Category: "build", Version: "0.40", InstallMode: "preinstalled", Path: "$HOME/.nvm", CheckCommand: `. "$HOME/.nvm/nvm.sh" && nvm --version`, InstallHint: "curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash", SortOrder: 4}, + {ToolKey: "nodejs", DisplayName: "Node.js(nvm 管理)", Category: "build", Version: "20", InstallMode: "lazy", Path: "$HOME/.nvm/versions/node", CheckCommand: "node -v", InstallHint: "nvm install 20 && nvm alias default 20(构建时可用 nvm install 18 按需切版本)", SortOrder: 5}, + {ToolKey: "git", DisplayName: "Git", Category: "build", Version: "2.40", InstallMode: "preinstalled", Path: "/usr/bin/git", CheckCommand: "git --version", InstallHint: "apt install -y git", SortOrder: 6}, + {ToolKey: "docker-cli", DisplayName: "Docker CLI", Category: "deploy", Version: "26", InstallMode: "lazy", Path: "/usr/bin/docker", CheckCommand: "docker --version", InstallHint: "apt install -y docker.io", SortOrder: 7}, }) } diff --git a/backend/internal/handler/resources.go b/backend/internal/handler/resources.go index f9c1b1f..3c2deeb 100644 --- a/backend/internal/handler/resources.go +++ b/backend/internal/handler/resources.go @@ -448,7 +448,7 @@ func UpdateTool(c *gin.Context) { } var raw map[string]any _ = c.ShouldBindJSON(&raw) - for _, k := range []string{"installMode", "version", "path", "enabled"} { + for _, k := range []string{"installMode", "version", "path", "installHint", "enabled"} { if v, ok := raw[k]; ok { database.DB.Model(&t).Update(k, v) } diff --git a/backend/internal/model/models.go b/backend/internal/model/models.go index 4e6b333..81be180 100644 --- a/backend/internal/model/models.go +++ b/backend/internal/model/models.go @@ -225,6 +225,7 @@ type DeployTool struct { InstallMode string `gorm:"default:lazy" json:"installMode"` // preinstalled|lazy|disabled Path string `json:"path"` CheckCommand string `gorm:"type:text" json:"checkCommand"` // 真实版本探测命令 + InstallHint string `gorm:"type:text" json:"installHint"` // 安装命令提示(Ubuntu apt / nvm) Enabled bool `gorm:"default:true" json:"enabled"` LastCheck *time.Time `json:"lastCheck"` ErrorMsg string `json:"errorMsg"` diff --git a/backend/static/index.html b/backend/static/index.html index 30e2799..fe38bc3 100644 --- a/backend/static/index.html +++ b/backend/static/index.html @@ -1,14 +1,10 @@ - + -
- - - -请在项目根目录执行 ./run.sh build 生成前端产物后重新编译。
nvm install $NODE_VERSION 灵活指定版本。可用 deploy/Dockerfile.buildnode 一键构建节点镜像