From 16326daf66aa548d2518ebb38fa34d901d41f568 Mon Sep 17 00:00:00 2001 From: kenneth Date: Tue, 5 Dec 2023 08:30:27 +0000 Subject: [PATCH] add deploy files --- .dockerignore | 12 ++++++++++++ Dockerfile | 15 +++++++++++++++ docker-compose.yaml | 20 ++++++++++++++++++++ internal/handlers/server.go | 6 ++---- main.go | 11 +---------- web/templates/video/edit.html.tmpl | 8 ++++++++ 6 files changed, 58 insertions(+), 14 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker-compose.yaml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..c793f64 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,12 @@ +media/ +upload/ +log/ + +LICENSE + +*.exe + +Makefile +modd.conf +sqlc.yaml +docker-compose.yaml \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b0ee899 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +# Build Stage +FROM golang:1.21.4 AS builder +ENV GO111MODULE=on \ + GOPROXY=https://goproxy.cn,direct +WORKDIR /app +COPY . . +RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o main main.go + +# Run Stage +FROM zc1185230223/alpine-ffmpeg:3.18 +WORKDIR /app +COPY --from=builder /app/main . +RUN touch app.env +EXPOSE 9090 +CMD ["/app/main"] \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..f6f2b89 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,20 @@ +version: '3.9' + +services: + mediahls: + image: mediahls:0.0.3 + container_name: mediahls + restart: always + volumes: + - /var/mediahls/app/log:/app/log + - /var/mediahls/app/app.env:/app/app.env + - /var/mediahls/app/media:/app/media + - /var/mediahls/app/upload:/app/upload + networks: + - media-hls-network + ports: + - "10050:9090" + +networks: + media-hls-network: + external: true \ No newline at end of file diff --git a/internal/handlers/server.go b/internal/handlers/server.go index 7131e00..011d98d 100644 --- a/internal/handlers/server.go +++ b/internal/handlers/server.go @@ -26,7 +26,6 @@ import ( type Server struct { templateFS fs.FS staticFS fs.FS - imgFS fs.FS conf *config.Config router *mux.Router @@ -36,7 +35,7 @@ type Server struct { tokenMaker token.Maker } -func NewServer(templateFS fs.FS, staticFS fs.FS, imgFS fs.FS, conf *config.Config, store db.Store) (*Server, error) { +func NewServer(templateFS fs.FS, staticFS fs.FS, conf *config.Config, store db.Store) (*Server, error) { tokenMaker, err := token.NewPasetoMaker(conf.TokenSymmetricKey) if err != nil { return nil, fmt.Errorf("cannot create token maker: %w", err) @@ -50,7 +49,6 @@ func NewServer(templateFS fs.FS, staticFS fs.FS, imgFS fs.FS, conf *config.Confi server := &Server{ templateFS: templateFS, staticFS: staticFS, - imgFS: imgFS, conf: conf, secureCookie: secureCookie, store: store, @@ -65,7 +63,7 @@ func (server *Server) setupRouter() { router := mux.NewRouter() router.Use(mux.CORSMethodMiddleware(router)) router.PathPrefix("/statics/").Handler(http.StripPrefix("/statics/", http.FileServer(http.FS(server.staticFS)))) - router.PathPrefix("/upload/imgs").Handler(http.StripPrefix("/upload/imgs/", http.FileServer(http.FS(server.imgFS)))) + router.PathPrefix("/upload/imgs").Handler(http.StripPrefix("/upload/imgs/", http.FileServer(http.Dir("./upload/imgs")))) csrfMiddleware := csrf.Protect( []byte(securecookie.GenerateRandomKey(32)), diff --git a/main.go b/main.go index 8a606c5..4feaf2a 100644 --- a/main.go +++ b/main.go @@ -18,9 +18,6 @@ var templateFS embed.FS //go:embed web/statics var staticFS embed.FS -//go:embed upload/imgs -var imgFS embed.FS - func main() { // filename, _ := nanoId.Nanoid() // log.Println(filename) @@ -38,12 +35,6 @@ func main() { log.Fatal(err) } - // Set up imgs - imgs, err := fs.Sub(imgFS, "upload/imgs") - if err != nil { - log.Fatal(err) - } - config, err := config.LoadConfig(".") if err != nil { log.Fatal("cannot load config: ", err) @@ -57,7 +48,7 @@ func main() { } store := db.NewStore(conn) - server, err := handlers.NewServer(templates, statics, imgs, config, store) + server, err := handlers.NewServer(templates, statics, config, store) if err != nil { log.Fatal("cannot create server: ", err) } diff --git a/web/templates/video/edit.html.tmpl b/web/templates/video/edit.html.tmpl index b19a06d..52128db 100644 --- a/web/templates/video/edit.html.tmpl +++ b/web/templates/video/edit.html.tmpl @@ -109,6 +109,7 @@ {{define "js"}}