1) config目录 创建dev.env和prod.env
env文件示例
dev.env
#gin
GIN_DEBUG=true
GIN_PORT=9000
prod.env
#gin
GIN_DEBUG=false
GIN_PORT=9527
2) 使用godotenv引入对应的文件
没有这个包的话需要先引入
go get github.com/joho/godotenv
package main
import (
"flag"
"log"
"os"
"github.com/gin-gonic/gin"
"github.com/joho/godotenv"
)
var envArgs string
func init() {
// 默认为dev环境
flag.StringVar(&envArgs, "env", "dev", "运行环境")
}
func main() {
// 需要先解析才能使用
flag.Parse()
err := godotenv.Load("./config/" + string(envArgs) + ".env")
if err != nil {
log.Fatal("Error loading .env file")
}
ginPort := os.GetEnv("GIN_PORT")
debugFlag := os.GetEnv("GIN_DEBUG")
if debugFlag == "true" {
gin.SetMode(gin.DebugMode)
} else {
gin.SetMode(gin.ReleaseMode)
}
r := gin.Default()
r.Run(":" + ginPort)
}
命令行执行
#prod环境
go run main.go -env=prod
#dev环境 如果env不传默认为dev
go run main.go -env=dev