X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/660e8d8345bfe7f34dfc8db655eff6a0af8bd47f..9454df6ea65e3afa9586cabea34abc42c328bd65:/docker/build_tools/Makefile diff --git a/docker/build_tools/Makefile b/docker/build_tools/Makefile index 7fdad914c8..9eac2ec61c 100644 --- a/docker/build_tools/Makefile +++ b/docker/build_tools/Makefile @@ -3,6 +3,7 @@ all: api-image doc-image workbench-image warehouse-image sso-image # `make clean' removes the files generated in the build directory # but does not remove any docker images generated in previous builds clean: + -rm -rf build -rm *-image */generated/* -@rmdir */generated @@ -19,6 +20,8 @@ realclean: clean CONFIG_RB = build_tools/config.rb +BUILD = build/.buildstamp + BASE_DEPS = base/Dockerfile $(BASE_GENERATED) API_DEPS = api/Dockerfile $(API_GENERATED) @@ -79,12 +82,16 @@ SSO_GENERATED_IN = \ sso/seeds.rb.in \ sso/secret_token.rb.in -$(BASE_GENERATED): config.yml +$(BUILD): + mkdir -p build + rsync -rlp --exclude=docker/ --exclude='**/log/*' --exclude='**/tmp/*' \ + --chmod=Da+rx,Fa+rX ../ build/ + touch build/.buildstamp + +$(BASE_GENERATED): config.yml $(BUILD) $(CONFIG_RB) mkdir -p base/generated - tar -c -z -f base/generated/arvados.tar.gz -C .. . \ - --exclude=services/api/log/* --exclude=docker/* - + tar -czf base/generated/arvados.tar.gz -C build . $(API_GENERATED): config.yml $(API_GENERATED_IN) $(CONFIG_RB) @@ -106,31 +113,31 @@ DOCKER_BUILD = docker build -q # ============================================================ # The main Arvados servers: api, doc, workbench, warehouse -api-image: passenger-image $(API_DEPS) +api-image: passenger-image $(BUILD) $(API_DEPS) mkdir -p api/generated - tar -c -z -f api/generated/api.tar.gz -C ../services api --exclude=api/log/* + tar -czf api/generated/api.tar.gz -C build/services api $(DOCKER_BUILD) -t arvados/api api - echo -n "Built at $(date)" > api-image + date >api-image -doc-image: base-image $(DOC_DEPS) +doc-image: base-image $(BUILD) $(DOC_DEPS) mkdir -p doc/generated - tar -c -z -f doc/generated/doc.tar.gz -C .. doc + tar -czf doc/generated/doc.tar.gz -C build doc $(DOCKER_BUILD) -t arvados/doc doc - echo -n "Built at $(date)" > doc-image + date >doc-image -workbench-image: passenger-image $(WORKBENCH_DEPS) +workbench-image: passenger-image $(BUILD) $(WORKBENCH_DEPS) mkdir -p workbench/generated - tar -c -z -f workbench/generated/workbench.tar.gz -C ../apps workbench + tar -czf workbench/generated/workbench.tar.gz -C build/apps workbench $(DOCKER_BUILD) -t arvados/workbench workbench - echo -n "Built at $(date)" > workbench-image + date >workbench-image warehouse-image: base-image $(WAREHOUSE_DEPS) $(DOCKER_BUILD) -t arvados/warehouse warehouse - echo -n "Built at $(date)" > warehouse-image + date >warehouse-image sso-image: passenger-image $(SSO_DEPS) $(DOCKER_BUILD) -t arvados/sso sso - echo -n "Built at $(date)" > sso-image + date >sso-image # ============================================================ # The arvados/base image is the base Debian image plus packages @@ -138,13 +145,12 @@ sso-image: passenger-image $(SSO_DEPS) passenger-image: base-image $(DOCKER_BUILD) -t arvados/passenger passenger - echo -n "Built at $(date)" > passenger-image + date >passenger-image base-image: debian-image $(BASE_DEPS) $(DOCKER_BUILD) -t arvados/base base - echo -n "Built at $(date)" > base-image + date >base-image debian-image: ./mkimage-debootstrap.sh arvados/debian wheezy ftp://ftp.us.debian.org/debian/ - echo -n "Built at $(date)" > debian-image - + date >debian-image