diff --git a/Dockerfile b/Dockerfile index e826ea8..9957a10 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,6 +30,8 @@ COPY conf ./conf COPY --from=build /app/main /app/main +ENV GIN_ENV=production + EXPOSE 8000 ENTRYPOINT ["/app/main"] diff --git a/conf/db.ini b/conf/db.ini index f6a0349..5734e92 100644 --- a/conf/db.ini +++ b/conf/db.ini @@ -1,5 +1,5 @@ [mysql] -user = test +username = test password = 123456 host = 172.17.0.1 port = 3306 diff --git a/src/models/init.go b/src/models/init.go index f942c81..bef242b 100644 --- a/src/models/init.go +++ b/src/models/init.go @@ -2,16 +2,36 @@ package models import ( "fmt" + "log" + "os" "time" + + "github.com/go-ini/ini" + "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/logger" - "gorm.io/driver/mysql" ) var DB *gorm.DB func init() { - dsn := "root:Chenweijia113!@(172.17.0.1:3306)/weixin?charset=utf8mb4&parseTime=True&loc=Local" + _, ok := os.LookupEnv("GIN_ENV") + var dsn string + if ok { + cfg, err := ini.Load("conf/db.ini") + if err != nil { + log.Fatalln(err) + } + mysql := cfg.Section("mysql") + username := mysql.Key("username").Value() + password := mysql.Key("password").Value() + host := mysql.Key("host").Value() + port, _ := mysql.Key("port").Int() + database := mysql.Key("database").Value() + dsn = fmt.Sprintf("%s:%s@(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local", username, password, host, port, database) + } else { + dsn = "root:123456@(127.0.0.1:3306)/weixin?charset=utf8mb4&parseTime=True&loc=Local" + } var err error DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil {