diff --git a/.gitignore b/.gitignore index 8891ed1c..f162fb78 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,5 @@ bin/* alist *.json public/index.html -public/assets/ \ No newline at end of file +public/assets/ +data/ \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index d57f8053..7f42b531 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,6 +7,7 @@ RUN apk add --no-cache bash git go gcc musl-dev; \ FROM alpine:edge LABEL MAINTAINER="i@nn.ci" +VOLUME /opt/alist/data/ WORKDIR /opt/alist/ COPY --from=builder /app/bin/alist ./ EXPOSE 5244 diff --git a/alist.go b/alist.go index 7aeb31de..56429f5c 100644 --- a/alist.go +++ b/alist.go @@ -14,7 +14,7 @@ import ( ) func init() { - flag.StringVar(&conf.ConfigFile, "conf", "config.json", "config file") + flag.StringVar(&conf.ConfigFile, "conf", "data/config.json", "config file") flag.BoolVar(&conf.Debug, "debug", false, "start with debug mode") flag.BoolVar(&conf.Version, "version", false, "print version info") flag.Parse() diff --git a/bootstrap/conf.go b/bootstrap/conf.go index df126303..246d3114 100644 --- a/bootstrap/conf.go +++ b/bootstrap/conf.go @@ -13,6 +13,10 @@ func InitConf() { log.Infof("reading config file: %s", conf.ConfigFile) if !utils.Exists(conf.ConfigFile) { log.Infof("config file not exists, creating default config file") + _, err := utils.CreatNestedFile(conf.ConfigFile) + if err != nil { + log.Fatalf("failed to create config file") + } conf.Conf = conf.DefaultConfig() if !utils.WriteToJson(conf.ConfigFile, conf.Conf) { log.Fatalf("failed to create default config file") diff --git a/conf/config.go b/conf/config.go index 58a1fbe6..3e88a5a0 100644 --- a/conf/config.go +++ b/conf/config.go @@ -28,7 +28,7 @@ func DefaultConfig() *Config { Port: 0, Name: "", TablePrefix: "x_", - DBFile: "data.db", + DBFile: "data/data.db", }, } }