feat: 工具配置 Ubuntu 化 + nvm 管理 Node 版本
- 工具目录重写为 Ubuntu 构建环境导向(7 项),每项带安装命令提示 (apt/nvm,未安装时一键复制) - 新增 nvm 工具条目(真实检测,本机验证 0.40.6);Node.js 改为 nvm 管理:默认版本可调,构建时通过 nvm install $NODE_VERSION 灵活指定版本 - DeployTool 新增 installHint 字段(模型/更新白名单/seed) - 新增 deploy/Dockerfile.buildnode:Ubuntu 22.04 + JDK17/Maven/Git/ Docker CLI/Golang + nvm 默认 Node(--build-arg NODE_VERSION 可改) - 工具页顶部说明条更新构建环境建议
This commit is contained in:
1 parent
d9d1dd5e99
commit
6841c1104a
6 files changed
+79
-22
No files matched your search
@@ -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},
|
||||
})
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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"`
|
||||
|
||||
Reference in new issue
Block a user