优化单例应用安装程序

This commit is contained in:
GoEdgeLab
2024-03-02 20:51:13 +08:00
parent 6ac798957e
commit f21519327b
2 changed files with 25 additions and 10 deletions

View File

@@ -8,16 +8,21 @@ import (
_ "github.com/iwind/TeaGo/bootstrap" _ "github.com/iwind/TeaGo/bootstrap"
"github.com/iwind/TeaGo/lists" "github.com/iwind/TeaGo/lists"
"os" "os"
"strings"
) )
func main() { func main() {
dbPasswordData, err := os.ReadFile("/usr/local/mysql/generated-password.txt") var dbHost = "127.0.0.1"
if err != nil { var dbPassword = "123456"
fmt.Println("[ERROR]read mysql password failed: " + err.Error())
return envDBHost, _ := os.LookupEnv("DB_HOST")
if len(envDBHost) > 0 {
dbHost = envDBHost
}
envDBPassword, _ := os.LookupEnv("DB_PASSWORD")
if len(envDBPassword) > 0 {
dbPassword = envDBPassword
} }
var dbPassword = strings.TrimSpace(string(dbPasswordData))
var isTesting = lists.ContainsString(os.Args, "-test") || lists.ContainsString(os.Args, "--test") var isTesting = lists.ContainsString(os.Args, "-test") || lists.ContainsString(os.Args, "--test")
if isTesting { if isTesting {
@@ -27,7 +32,7 @@ func main() {
var instance = instances.NewInstance(instances.Options{ var instance = instances.NewInstance(instances.Options{
IsTesting: isTesting, IsTesting: isTesting,
Verbose: lists.ContainsString(os.Args, "-v"), Verbose: lists.ContainsString(os.Args, "-v"),
Cacheable: true, Cacheable: false,
WorkDir: "", WorkDir: "",
SrcDir: "/usr/local/goedge/src", SrcDir: "/usr/local/goedge/src",
DB: struct { DB: struct {
@@ -37,7 +42,7 @@ func main() {
Password string Password string
Name string Name string
}{ }{
Host: "127.0.0.1", Host: dbHost,
Port: 3306, Port: 3306,
Username: "root", Username: "root",
Password: dbPassword, Password: dbPassword,
@@ -56,7 +61,7 @@ func main() {
RestHTTPPort: 8002, RestHTTPPort: 8002,
}, },
Node: struct{ HTTPPort int }{ Node: struct{ HTTPPort int }{
HTTPPort: 8080, HTTPPort: 80,
}, },
UserNode: struct { UserNode: struct {
HTTPPort int HTTPPort int
@@ -64,7 +69,7 @@ func main() {
HTTPPort: 7799, HTTPPort: 7799,
}, },
}) })
err = instance.SetupAll() err := instance.SetupAll()
if err != nil { if err != nil {
fmt.Println("[ERROR]setup failed: " + err.Error()) fmt.Println("[ERROR]setup failed: " + err.Error())
return return

View File

@@ -3,6 +3,7 @@
package instances package instances
import ( import (
"context"
"encoding/json" "encoding/json"
"errors" "errors"
"fmt" "fmt"
@@ -77,6 +78,15 @@ func (this *Instance) SetupDB() error {
_ = db.Close() _ = db.Close()
}() }()
// 等待连接成功
for i := 0; i < 30; i++ {
err := db.Raw().PingContext(context.Background())
if err == nil {
break
}
time.Sleep(1 * time.Second)
}
_, err := db.Exec("USE `" + this.options.DB.Name + "`") _, err := db.Exec("USE `" + this.options.DB.Name + "`")
if err != nil { if err != nil {
if models.CheckSQLErrCode(err, 1049) { if models.CheckSQLErrCode(err, 1049) {