From e17ab86d2dd4845bbd299750e5a43551e11e55aa Mon Sep 17 00:00:00 2001 From: ish Date: Mon, 18 Nov 2024 20:05:46 +0900 Subject: [PATCH] Do not embed softwares.db --- Dockerfile | 1 + db/sqlite.go | 33 ++++++++++++++++++++++---------- db/softwares.db => softwares.db | Bin 3 files changed, 24 insertions(+), 10 deletions(-) rename db/softwares.db => softwares.db (100%) diff --git a/Dockerfile b/Dockerfile index 6052661..c41ecdd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,6 +28,7 @@ COPY --from=builder /go/src/github.com/cloud-barista/cm-grasshopper/conf /conf COPY --from=builder /go/src/github.com/cloud-barista/cm-grasshopper/cmd/cm-grasshopper/cm-grasshopper /cm-grasshopper ADD playbook/ /playbook +ADD softwares.db /softwares.db RUN mkdir -p /root/.cm-grasshopper/ RUN curl --ipv4 https://raw.githubusercontent.com/cloud-barista/cm-honeybee/main/server/_default_key/honeybee.key -o /root/.cm-grasshopper/honeybee.key diff --git a/db/sqlite.go b/db/sqlite.go index 039842a..6aacaec 100644 --- a/db/sqlite.go +++ b/db/sqlite.go @@ -1,39 +1,52 @@ package db import ( - "embed" "github.com/cloud-barista/cm-grasshopper/common" "github.com/cloud-barista/cm-grasshopper/pkg/api/rest/model" "github.com/glebarez/sqlite" "github.com/jollaman999/utils/fileutil" "github.com/jollaman999/utils/logger" "gorm.io/gorm" + "io" "os" ) -//go:embed softwares.db -var embeddedDB embed.FS - var SoftwaresDB *gorm.DB var DB *gorm.DB -func copyEmbeddedDB(dst string) error { - dbBytes, err := embeddedDB.ReadFile("softwares.db") +func copyFile(src string, dst string) (err error) { + sourceFile, err := os.Open(src) if err != nil { return err } + defer func() { + _ = sourceFile.Close() + }() - return os.WriteFile(dst, dbBytes, 0644) + destFile, err := os.Create(dst) + if err != nil { + return err + } + defer func() { + _ = destFile.Close() + }() + + _, err = io.Copy(destFile, sourceFile) + + return err } func Open() error { var err error + sourceDB := "softwares.db" targetPath := common.RootPath + "/softwares.db" if !fileutil.IsExist(targetPath) { - err := copyEmbeddedDB(targetPath) - if err != nil { - return err + if fileutil.IsExist(sourceDB) { + err := copyFile(sourceDB, targetPath) + if err != nil { + return err + } } } diff --git a/db/softwares.db b/softwares.db similarity index 100% rename from db/softwares.db rename to softwares.db