diff --git a/ui/.dockerignore b/ui/.dockerignore new file mode 100644 index 00000000..3c3629e6 --- /dev/null +++ b/ui/.dockerignore @@ -0,0 +1 @@ +node_modules diff --git a/ui/Dockerfile b/ui/Dockerfile new file mode 100644 index 00000000..6d1c45b3 --- /dev/null +++ b/ui/Dockerfile @@ -0,0 +1 @@ +FROM quay.io/yldio/alpine-node-containerpilot:latest diff --git a/ui/Makefile b/ui/Makefile index c28f9ec1..d655f296 100644 --- a/ui/Makefile +++ b/ui/Makefile @@ -1,18 +1,28 @@ bindir := $(shell yarn bin) AVA := $(bindir)/ava NYC := $(bindir)/nyc +ST := $(bindir)/st .PHONY: test test: BABEL_DISABLE_CACHE=1 NODE_ENV=test CONFIG=$(shell pwd)/webpack/index.js $(NYC) $(AVA) test/*.js $(TEST_ARGS) -.PHONY: install -install: +.PHONY: install-embed-markdown-loader +install-embed-markdown-loader: + cd webpack/embed-markdown-loader yarn install --prefer-offline +.PHONY: install +install: install-embed-markdown-loader + yarn install --prefer-offline + +.PHONY: start +start: + $(ST) -p 8080 -d src/ --no-dot -a 7200000 + .PHONY: install-production -install-production: - yarn install --production --pure-lockfile --prefer-offline +install-production: install-embed-markdown-loader + yarn install --pure-lockfile --prefer-offline .PHONY: clean clean: diff --git a/ui/etc/containerpilot.json b/ui/etc/containerpilot.json new file mode 100644 index 00000000..652a120e --- /dev/null +++ b/ui/etc/containerpilot.json @@ -0,0 +1,14 @@ +{ + "consul": "{{ .CONSUL }}:8500", + "services": [ + { + "name": "joyent-dashboard-ui", + "port": 8080, + "health": "/usr/bin/curl -o /dev/null --fail -s http://localhost:8080/", + "poll": 3, + "ttl": 10 + } + ], + "backends": [ + ] +} diff --git a/ui/package.json b/ui/package.json index 18a5537e..a4a677b1 100644 --- a/ui/package.json +++ b/ui/package.json @@ -70,6 +70,7 @@ "react-dom": "^15.3.2", "react-hot-loader": "^3.0.0-beta.6", "react-router": "^4.0.0-alpha.4", + "st": "^1.2.0", "style-loader": "^0.13.1", "title-case": "^2.1.0", "webpack": "^2.1.0-beta.25", diff --git a/ui/yarn.lock b/ui/yarn.lock index 1757f455..1b7864f3 100644 --- a/ui/yarn.lock +++ b/ui/yarn.lock @@ -180,6 +180,12 @@ assert@^1.1.1: dependencies: util "0.10.3" +async-cache@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/async-cache/-/async-cache-1.1.0.tgz#4a9a5a89d065ec5d8e5254bd9ee96ba76c532b5a" + dependencies: + lru-cache "^4.0.0" + async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" @@ -1016,6 +1022,12 @@ binary-extensions@^1.0.0: version "1.7.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.7.0.tgz#6c1610db163abfb34edfe42fa423343a1e01185d" +bl@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398" + dependencies: + readable-stream "~2.0.5" + block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" @@ -2394,6 +2406,10 @@ fbjs@^0.8.4: promise "^7.1.1" ua-parser-js "^0.7.9" +fd@~0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/fd/-/fd-0.0.2.tgz#e0edb2bd7a88cc86dd9f16391cba832418fd87ee" + figures@^1.3.5, figures@^1.4.0: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" @@ -2676,7 +2692,7 @@ got@^5.0.0: unzip-response "^1.0.0" url-parse-lax "^1.0.0" -graceful-fs@^4.1.2: +graceful-fs@^4.1.2, graceful-fs@~4.1.4: version "4.1.9" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.9.tgz#baacba37d19d11f9d146d3578bc99958c3787e29" @@ -3695,7 +3711,7 @@ mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.7: dependencies: mime-db "~1.24.0" -mime@^1.3.4, mime@1.3.4: +mime@^1.3.4, mime@~1.3.4, mime@1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" @@ -3762,7 +3778,7 @@ natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" -negotiator@0.6.1: +negotiator@~0.6.1, negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" @@ -5062,7 +5078,7 @@ readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2. string_decoder "~0.10.x" util-deprecate "~1.0.1" -readable-stream@~2.0.0: +readable-stream@~2.0.0, readable-stream@~2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" dependencies: @@ -5514,6 +5530,18 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" +st: + version "1.2.0" + resolved "https://registry.yarnpkg.com/st/-/st-1.2.0.tgz#e6313c1836a0889e8507be5bb189b2245266c2df" + dependencies: + async-cache "~1.1.0" + bl "~1.1.2" + fd "~0.0.2" + mime "~1.3.4" + negotiator "~0.6.1" + optionalDependencies: + graceful-fs "~4.1.4" + stack-utils@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-0.4.0.tgz#940cb82fccfa84e8ff2f3fdf293fe78016beccd1"