Squash docker layers to make the scope image fetch nicer.

This commit is contained in:
Tom Wilkie
2015-05-22 10:03:34 +00:00
parent c193d69b19
commit 07e1f0ff18
3 changed files with 23 additions and 20 deletions

View File

@@ -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= <target>`
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

View File

@@ -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

View File

@@ -1,13 +1,11 @@
FROM gliderlabs/alpine
MAINTAINER Weaveworks Inc <help@weave.works>
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"]