From a7c59f91e265fe1559ec33d53855def8e041793d Mon Sep 17 00:00:00 2001 From: Augustin Godiscal Date: Thu, 27 Mar 2025 11:41:28 +0100 Subject: [PATCH 1/2] This makes more sense now --- Dockerfile | 9 +++++---- cmd/run_server.go | 7 ++----- go-oauth2-server.go | 8 +++++++- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9ccb71e..be45ca9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,7 @@ -ARG RELEASE_TAG=develop +ARG STATIC_DIR=public FROM golang:alpine as builder -ARG RELEASE_TAG - RUN apk update && apk add --no-cache git make ca-certificates tzdata && update-ca-certificates ENV USER=appuser @@ -34,10 +32,12 @@ RUN make generate # Build the binary RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \ -ldflags='-w -s -extldflags "-static"' -a \ - -o /go/bin/id . + -o $GOPATH/bin/id . FROM scratch +ARG STATIC_DIR + # Import from builder. COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ @@ -45,6 +45,7 @@ COPY --from=builder /etc/passwd /etc/passwd COPY --from=builder /etc/group /etc/group COPY --from=builder /go/bin/id /go/bin/id +COPY --from=builder /go/src/resonatecoop/id/public ${STATIC_DIR} # Use an unprivileged user. USER appuser:appuser diff --git a/cmd/run_server.go b/cmd/run_server.go index d45e55d..8da0a9f 100644 --- a/cmd/run_server.go +++ b/cmd/run_server.go @@ -15,7 +15,7 @@ import ( ) // RunServer runs the app -func RunServer(configBackend string) error { +func RunServer(configBackend, staticDir string) error { cnf, db, err := initConfigDB(true, true, configBackend) if err != nil { return err @@ -40,7 +40,7 @@ func RunServer(configBackend string) error { app.Use(negroni.NewLogger()) app.Use(gzip.Gzip(gzip.DefaultCompression)) app.Use(negroni.HandlerFunc(secureMiddleware.HandlerFuncWithNext)) - app.Use(negroni.NewStatic(http.Dir("public"))) + app.Use(negroni.NewStatic(http.Dir(staticDir))) // Create a router instance router := mux.NewRouter() @@ -51,9 +51,6 @@ func RunServer(configBackend string) error { webRoutes := mux.NewRouter() - // Serve static files under ../public - webRoutes.PathPrefix("/static/").Handler(http.StripPrefix("/static/", http.FileServer(http.Dir("../public/")))) - services.WebService.RegisterRoutes(webRoutes, "/web") CSRF := csrf.Protect( diff --git a/go-oauth2-server.go b/go-oauth2-server.go index 9613a89..57b40d1 100644 --- a/go-oauth2-server.go +++ b/go-oauth2-server.go @@ -11,6 +11,7 @@ import ( var ( cliApp *cli.App configBackend string + staticDir string ) func init() { @@ -27,6 +28,11 @@ func init() { Value: "etcd", Destination: &configBackend, }, + cli.StringFlag{ + Name: "staticDir", + Value: "public", + Destination: &staticDir, + }, } } @@ -37,7 +43,7 @@ func main() { Name: "runserver", Usage: "run web server", Action: func(c *cli.Context) error { - return cmd.RunServer(configBackend) + return cmd.RunServer(configBackend, staticDir) }, }, } From 2f1bba906fd6be5989c952185a028e7fcdd1a6e3 Mon Sep 17 00:00:00 2001 From: Augustin Godiscal Date: Thu, 27 Mar 2025 14:17:38 +0100 Subject: [PATCH 2/2] Woops, we actually need this --- Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index be45ca9..549176f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,10 @@ +ARG RELEASE_TAG=develop ARG STATIC_DIR=public FROM golang:alpine as builder +ARG RELEASE_TAG + RUN apk update && apk add --no-cache git make ca-certificates tzdata && update-ca-certificates ENV USER=appuser