fix: 数据持久化到/app/data目录,简化部署配置
- 配置文件和SQLite数据库存储在/app/data - Docker volume持久化数据 - 无需预设环境变量,安装向导自动配置
This commit is contained in:
@@ -2,29 +2,40 @@ package config
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
// Init 初始化配置
|
||||
var dataDir = "/app/data"
|
||||
|
||||
func Init() {
|
||||
if dir := os.Getenv("DATA_DIR"); dir != "" {
|
||||
dataDir = dir
|
||||
}
|
||||
if _, err := os.Stat(dataDir); os.IsNotExist(err) {
|
||||
os.MkdirAll(dataDir, 0755)
|
||||
}
|
||||
|
||||
viper.SetConfigName("config")
|
||||
viper.SetConfigType("yaml")
|
||||
viper.AddConfigPath(dataDir)
|
||||
viper.AddConfigPath(".")
|
||||
viper.AddConfigPath("./config")
|
||||
|
||||
// 设置默认值
|
||||
setDefaults()
|
||||
|
||||
// 读取配置文件
|
||||
if err := viper.ReadInConfig(); err != nil {
|
||||
log.Printf("Warning: Config file not found, using defaults: %v", err)
|
||||
}
|
||||
|
||||
// 环境变量覆盖
|
||||
viper.AutomaticEnv()
|
||||
}
|
||||
|
||||
func GetDataDir() string {
|
||||
return dataDir
|
||||
}
|
||||
|
||||
// setDefaults 设置默认配置值
|
||||
func setDefaults() {
|
||||
// 应用配置
|
||||
|
||||
Reference in New Issue
Block a user