Reorganise a little to move the server into it's own directory
This commit is contained in:
parent
aa2ecace89
commit
5a2d35aca8
5 changed files with 17 additions and 3 deletions
11
cmd/rove-server/Dockerfile
Normal file
11
cmd/rove-server/Dockerfile
Normal file
|
@ -0,0 +1,11 @@
|
|||
FROM golang:latest
|
||||
LABEL maintainer="Marc Di Luzio <marc.diluzio@gmail.com>"
|
||||
|
||||
WORKDIR /app
|
||||
COPY . .
|
||||
RUN go mod download
|
||||
|
||||
RUN go build -o rove-server -ldflags="-X 'github.com/mdiluz/rove/pkg/version.Version=$(git describe --always --long --dirty --tags)'" cmd/rove-server/main.go
|
||||
|
||||
CMD [ "./rove-server" ]
|
||||
|
64
cmd/rove-server/main.go
Normal file
64
cmd/rove-server/main.go
Normal file
|
@ -0,0 +1,64 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
|
||||
"github.com/mdiluz/rove/pkg/persistence"
|
||||
"github.com/mdiluz/rove/pkg/server"
|
||||
"github.com/mdiluz/rove/pkg/version"
|
||||
)
|
||||
|
||||
var ver = flag.Bool("version", false, "Display version number")
|
||||
var port = flag.Int("port", 8080, "The port to host on")
|
||||
var data = flag.String("data", os.TempDir(), "Directory to store persistant data")
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
||||
// Print the version if requested
|
||||
if *ver {
|
||||
fmt.Println(version.Version)
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
fmt.Printf("Initialising version %s...\n", version.Version)
|
||||
|
||||
// Set the persistence path
|
||||
persistence.SetPath(*data)
|
||||
|
||||
// Create the server data
|
||||
s := server.NewServer(
|
||||
server.OptionPort(*port),
|
||||
server.OptionPersistentData())
|
||||
|
||||
// Initialise the server
|
||||
if err := s.Initialise(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
// Set up the close handler
|
||||
c := make(chan os.Signal)
|
||||
signal.Notify(c, os.Interrupt, syscall.SIGTERM)
|
||||
go func() {
|
||||
<-c
|
||||
fmt.Println("SIGTERM recieved, exiting...")
|
||||
if err := s.Close(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
os.Exit(0)
|
||||
}()
|
||||
|
||||
fmt.Println("Running...")
|
||||
|
||||
// Run the server
|
||||
s.Run()
|
||||
|
||||
// Close the server
|
||||
if err := s.Close(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue