diff --git a/Makefile b/Makefile index 6da2f56bc..de955c487 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ -.PHONY: all static clean +.PHONY: all deps static clean # If you can use Docker without being root, you can `make SUDO= ` SUDO=sudo - +DOCKER_SQUASH=$(shell which docker-squash) DOCKERHUB_USER=weaveworks APP_EXE=app/app PROBE_EXE=probe/probe @@ -10,14 +10,14 @@ FIXPROBE_EXE=experimental/fixprobe/fixprobe SCOPE_IMAGE=$(DOCKERHUB_USER)/scope SCOPE_EXPORT=scope.tar SCOPE_UI_BUILD_EXPORT=scope_ui_build.tar -SCOPE_UI_BUILD_IMAGE=weave/scope-ui-build +SCOPE_UI_BUILD_IMAGE=$(DOCKERHUB_USER)/scope-ui-build all: $(SCOPE_EXPORT) $(SCOPE_EXPORT): $(APP_EXE) $(PROBE_EXE) docker/* cp $(APP_EXE) $(PROBE_EXE) docker/ $(SUDO) docker build -t $(SCOPE_IMAGE) docker/ - $(SUDO) docker save $(SCOPE_IMAGE):latest > $@ + $(SUDO) docker save $(SCOPE_IMAGE):latest | $(SUDO) $(DOCKER_SQUASH) -t $(SCOPE_IMAGE) | tee $@ | $(SUDO) docker load $(APP_EXE): app/*.go report/*.go xfer/*.go @@ -30,16 +30,23 @@ $(APP_EXE) $(PROBE_EXE): static: client/dist/scripts/bundle.js esc -o app/static.go -prefix client/dist client/dist -$(SCOPE_UI_BUILD_EXPORT): client/Dockerfile client/gulpfile.js client/package.json - docker build -t $(SCOPE_UI_BUILD_IMAGE) client - docker save $(SCOPE_UI_BUILD_IMAGE):latest > $@ - client/dist/scripts/bundle.js: client/app/scripts/* mkdir -p client/dist docker run -ti -v $(shell pwd)/client/app:/home/weave/app \ -v $(shell pwd)/client/dist:/home/weave/dist \ $(SCOPE_UI_BUILD_IMAGE) +$(SCOPE_UI_BUILD_EXPORT): client/Dockerfile client/gulpfile.js client/package.json + docker build -t $(SCOPE_UI_BUILD_IMAGE) client + docker save $(SCOPE_UI_BUILD_IMAGE):latest > $@ + clean: go clean ./... rm -rf $(SCOPE_EXPORT) $(SCOPE_UI_BUILD_EXPORT) client/dist + +deps: + go get github.com/jwilder/docker-squash \ + github.com/golang/lint/golint \ + github.com/fzipp/gocyclo \ + github.com/mattn/goveralls \ + github.com/mjibson/esc diff --git a/circle.yml b/circle.yml index daa2be8e4..d7995d5b0 100644 --- a/circle.yml +++ b/circle.yml @@ -16,6 +16,7 @@ dependencies: cache_directories: - "~/docker" override: + - sudo apt-get --only-upgrade install tar - if [[ -e "$SCOPE_UI_BUILD" ]]; then docker load -i $SCOPE_UI_BUILD; else @@ -26,10 +27,7 @@ dependencies: post: - go clean -i net - go install -tags netgo std - - go get github.com/golang/lint/golint - - go get github.com/fzipp/gocyclo - - go get github.com/mattn/goveralls - - go get github.com/mjibson/esc + - make deps - mkdir -p $(dirname $SRCDIR) - cp -r $(pwd)/ $SRCDIR diff --git a/docker/Dockerfile b/docker/Dockerfile index acab12f59..c2ff5b4bc 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,13 +1,11 @@ FROM gliderlabs/alpine MAINTAINER Weaveworks Inc WORKDIR /home/weave -ADD ./app /home/weave/ -ADD ./probe /home/weave/ -ADD ./entrypoint.sh /home/weave/ -ADD ./run-app /etc/service/app/run -ADD ./run-probe /etc/service/probe/run - -RUN echo "http://dl-4.alpinelinux.org/alpine/edge/testing" >>/etc/apk/repositories && apk add --update runit - +RUN echo "http://dl-4.alpinelinux.org/alpine/edge/testing" >>/etc/apk/repositories && \ + apk add --update runit && \ + rm -rf /var/cache/apk/* +COPY ./app ./probe ./entrypoint.sh /home/weave/ +COPY ./run-app /etc/service/app/run +COPY ./run-probe /etc/service/probe/run EXPOSE 4040 ENTRYPOINT ["/home/weave/entrypoint.sh"]