agent: compile web assets into consul binary
This commit is contained in:
parent
1e66aba424
commit
a262115679
12
Makefile
12
Makefile
|
@ -1,4 +1,5 @@
|
||||||
GOTOOLS = github.com/mitchellh/gox golang.org/x/tools/cmd/stringer
|
GOTOOLS = github.com/mitchellh/gox golang.org/x/tools/cmd/stringer \
|
||||||
|
github.com/jteeuwen/go-bindata/... github.com/elazarl/go-bindata-assetfs/...
|
||||||
DEPS = $(shell go list -f '{{range .TestImports}}{{.}} {{end}}' ./...)
|
DEPS = $(shell go list -f '{{range .TestImports}}{{.}} {{end}}' ./...)
|
||||||
PACKAGES = $(shell go list ./...)
|
PACKAGES = $(shell go list ./...)
|
||||||
VETARGS?=-asmdecl -atomic -bool -buildtags -copylocks -methods \
|
VETARGS?=-asmdecl -atomic -bool -buildtags -copylocks -methods \
|
||||||
|
@ -68,10 +69,17 @@ generate: deps
|
||||||
find . -type f -name '.DS_Store' -delete
|
find . -type f -name '.DS_Store' -delete
|
||||||
go generate ./...
|
go generate ./...
|
||||||
|
|
||||||
|
# generates the static web ui
|
||||||
|
static-assets: deps
|
||||||
|
@echo "--> Generating static assets"
|
||||||
|
@go-bindata-assetfs -pkg agent -prefix ui ./ui/dist/...
|
||||||
|
@mv bindata_assetfs.go command/agent
|
||||||
|
$(MAKE) format
|
||||||
|
|
||||||
web:
|
web:
|
||||||
./scripts/website_run.sh
|
./scripts/website_run.sh
|
||||||
|
|
||||||
web-push:
|
web-push:
|
||||||
./scripts/website_push.sh
|
./scripts/website_push.sh
|
||||||
|
|
||||||
.PHONY: all bin dev dist cov deps test vet web web-push generate test-nodep
|
.PHONY: all bin dev dist cov deps test vet web web-push generate test-nodep static-assets
|
||||||
|
|
|
@ -275,10 +275,11 @@ func (s *HTTPServer) registerHandlers(enableDebug bool) {
|
||||||
s.mux.HandleFunc("/debug/pprof/symbol", pprof.Symbol)
|
s.mux.HandleFunc("/debug/pprof/symbol", pprof.Symbol)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enable the UI + special endpoints
|
// Use the custom UI dir if provided.
|
||||||
if s.uiDir != "" {
|
if s.uiDir != "" {
|
||||||
// Static file serving done from /ui/
|
|
||||||
s.mux.Handle("/ui/", http.StripPrefix("/ui/", http.FileServer(http.Dir(s.uiDir))))
|
s.mux.Handle("/ui/", http.StripPrefix("/ui/", http.FileServer(http.Dir(s.uiDir))))
|
||||||
|
} else {
|
||||||
|
s.mux.Handle("/ui/", http.StripPrefix("/ui/", http.FileServer(assetFS())))
|
||||||
}
|
}
|
||||||
|
|
||||||
// API's are under /internal/ui/ to avoid conflict
|
// API's are under /internal/ui/ to avoid conflict
|
||||||
|
|
17
ui/README.md
17
ui/README.md
|
@ -60,3 +60,20 @@ The `dist` folder will contain the files you should use for deployment.
|
||||||
|
|
||||||
###Acknowledgements
|
###Acknowledgements
|
||||||
cog icon by useiconic.com from the [Noun Project](https://thenounproject.com/term/setting/45865/)
|
cog icon by useiconic.com from the [Noun Project](https://thenounproject.com/term/setting/45865/)
|
||||||
|
|
||||||
|
### Compiling the UI into the Go binary
|
||||||
|
|
||||||
|
The UI is compiled and shipped with the Consul go binary. The generated bindata
|
||||||
|
file lives in the `command/agent/bindata_assetfs.go` file and is checked into
|
||||||
|
source control. This is useful so that not every Consul developer needs to set
|
||||||
|
up bundler etc. To re-generate the file, first follow the compilation steps
|
||||||
|
above to build the UI assets into the `dist/` folder. With that done, from the
|
||||||
|
root of the Consul repo, run:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ make static-assets
|
||||||
|
```
|
||||||
|
|
||||||
|
The file will now be refreshed with the current UI data. You can now rebuild the
|
||||||
|
Consul binary normally with `make bin` or `make dev`, and see the updated UI
|
||||||
|
after re-launching Consul.
|
||||||
|
|
Loading…
Reference in New Issue