diff --git a/Dockerfile b/Dockerfile index 9ccb71e..549176f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ -ARG RELEASE_TAG=develop +ARG RELEASE_TAG=develop +ARG STATIC_DIR=public FROM golang:alpine as builder @@ -34,10 +35,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 +48,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) }, }, }