Add trigger-cron endpoint + optimize dockerfile for server

This commit is contained in:
David Dworken 2022-04-16 16:28:53 -07:00
parent ab04756bab
commit 05f1af8714
2 changed files with 26 additions and 8 deletions

View File

@ -1,8 +1,10 @@
FROM golang:1.17
FROM golang:1.17 AS builder
COPY go.mod ./
COPY go.sum ./
RUN unset GOPATH; go mod download
COPY . ./
RUN unset GOPATH; go build -o /server -ldflags "-X main.ReleaseVersion=v0.`cat VERSION`" backend/server/server.go
CMD [ "/server" ]
FROM golang:1.17
COPY --from=builder /server /server
CMD ["/server"]

View File

@ -166,20 +166,35 @@ func init() {
go runBackgroundJobs()
}
func cron() error {
err := updateReleaseVersion()
if err != nil {
fmt.Println(err)
}
err = cleanDatabase()
if err != nil {
fmt.Println(err)
}
return nil
}
func runBackgroundJobs() {
for {
err := updateReleaseVersion()
err := cron()
if err != nil {
fmt.Println(err)
}
err = cleanDatabase()
if err != nil {
fmt.Println(err)
fmt.Printf("Cron failure: %v", err)
}
time.Sleep(10 * time.Minute)
}
}
func triggerCronHandler(w http.ResponseWriter, r *http.Request) {
err := cron()
if err != nil {
panic(err)
}
}
type releaseInfo struct {
Name string `json:"name"`
}
@ -297,6 +312,7 @@ func main() {
http.Handle("/api/v1/ebootstrap", withLogging(apiEBootstrapHandler))
http.Handle("/api/v1/eregister", withLogging(apiERegisterHandler))
http.Handle("/api/v1/banner", withLogging(apiBannerHandler))
http.Handle("/api/v1/trigger-cron", withLogging(triggerCronHandler))
http.Handle("/download/hishtory-linux-amd64", withLogging(bindaryDownloadHandler))
http.Handle("/download/hishtory-linux-amd64.intoto.jsonl", withLogging(attestationDownloadHandler))
log.Fatal(http.ListenAndServe(":8080", nil))