mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-05 09:30:24 +08:00
优化单例应用安装程序
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user