X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/7449c28473b6a5f47148ee5ce321fa994db883cb..c6ecb94b3d88dc6c5c28c45e9d602a2abd7f07db:/docker/build_tools/Makefile diff --git a/docker/build_tools/Makefile b/docker/build_tools/Makefile index e41b183f0c..298551fa15 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,8 +20,12 @@ realclean: clean CONFIG_RB = build_tools/config.rb +BUILD = build/.buildstamp + BASE_DEPS = base/Dockerfile $(BASE_GENERATED) +JOBS_DEPS = jobs/Dockerfile + API_DEPS = api/Dockerfile $(API_GENERATED) DOC_DEPS = doc/Dockerfile doc/apache2_vhost @@ -79,12 +84,21 @@ 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/ + find build/ -name \*.gem -delete + cd build/services/fuse/ && python setup.py build + cd build/sdk/python/ && python setup.py build + cd build/sdk/cli && gem build arvados-cli.gemspec + cd build/sdk/ruby && gem build arvados.gemspec + 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,21 +120,25 @@ 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 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 date >doc-image -workbench-image: passenger-image $(WORKBENCH_DEPS) +jobs-image: base-image $(BUILD) $(JOBS_DEPS) + $(DOCKER_BUILD) -t arvados/jobs jobs + date >jobs-image + +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 date >workbench-image