Fix dataSourceName config to use correct DB host in Docker.

This commit is contained in:
Gucheng Wang
2021-12-12 23:42:40 +08:00
parent b2f2674d3e
commit 589c0404d2
5 changed files with 41 additions and 3 deletions

View File

@ -18,6 +18,7 @@ import (
"github.com/astaxie/beego"
"github.com/casbin/casbin/v2"
"github.com/casbin/casbin/v2/model"
"github.com/casbin/casdoor/conf"
xormadapter "github.com/casbin/xorm-adapter/v2"
stringadapter "github.com/qiangmzsx/string-adapter/v2"
)
@ -27,7 +28,7 @@ var Enforcer *casbin.Enforcer
func InitAuthz() {
var err error
a, err := xormadapter.NewAdapter(beego.AppConfig.String("driverName"), beego.AppConfig.String("dataSourceName")+beego.AppConfig.String("dbName"), true)
a, err := xormadapter.NewAdapter(beego.AppConfig.String("driverName"), conf.GetBeegoConfDataSourceName()+beego.AppConfig.String("dbName"), true)
if err != nil {
panic(err)
}

33
conf/conf.go Normal file
View File

@ -0,0 +1,33 @@
// Copyright 2021 The casbin Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package conf
import (
"os"
"strings"
"github.com/astaxie/beego"
)
func GetBeegoConfDataSourceName() string {
dataSourceName := beego.AppConfig.String("dataSourceName")
runningInDocker := os.Getenv("RUNNING_IN_DOCKER")
if runningInDocker != "" {
dataSourceName = strings.ReplaceAll(dataSourceName, "localhost", "host.docker.internal")
}
return dataSourceName
}

View File

@ -8,6 +8,8 @@ services:
- "8000:8000"
depends_on:
- db
environment:
RUNNING_IN_DOCKER: true
volumes:
- ./conf:/conf/
db:

View File

@ -19,6 +19,7 @@ import (
"runtime"
"github.com/astaxie/beego"
"github.com/casbin/casdoor/conf"
_ "github.com/go-sql-driver/mysql" // db = mysql
//_ "github.com/lib/pq" // db = postgres
"xorm.io/xorm"
@ -36,7 +37,7 @@ func InitConfig() {
}
func InitAdapter() {
adapter = NewAdapter(beego.AppConfig.String("driverName"), beego.AppConfig.String("dataSourceName"), beego.AppConfig.String("dbName"))
adapter = NewAdapter(beego.AppConfig.String("driverName"), conf.GetBeegoConfDataSourceName(), beego.AppConfig.String("dbName"))
adapter.createTable()
}

View File

@ -16,6 +16,7 @@ package original
import (
"github.com/astaxie/beego"
"github.com/casbin/casdoor/conf"
"github.com/casbin/casdoor/object"
_ "github.com/go-sql-driver/mysql" // db = mysql
//_ "github.com/lib/pq" // db = postgres
@ -36,7 +37,7 @@ func InitAdapter() bool {
return false
}
adapter = object.NewAdapter(beego.AppConfig.String("driverName"), beego.AppConfig.String("dataSourceName"), dbName)
adapter = object.NewAdapter(beego.AppConfig.String("driverName"), conf.GetBeegoConfDataSourceName(), dbName)
createTable(adapter)
return true
}