[ARVADOS] updated: cab9d1a8bd750638efbff292093624bf5bdb8767

git at public.curoverse.com git at public.curoverse.com
Thu Apr 3 13:58:25 EDT 2014


Summary of changes:
 docker/.gitignore            |    2 +-
 docker/api/Dockerfile        |    2 +-
 docker/build_tools/Makefile  |   44 +++++++++++++++++++++++------------------
 docker/build_tools/build.rb  |    4 +-
 docker/build_tools/config.rb |    6 ++++-
 5 files changed, 34 insertions(+), 24 deletions(-)

       via  cab9d1a8bd750638efbff292093624bf5bdb8767 (commit)
       via  d12e6551586651ee5251f70fac1b1c086674a835 (commit)
       via  47d1fdfe8a1d7c4275f9b97f7ddf932e6671f0af (commit)
       via  7449c28473b6a5f47148ee5ce321fa994db883cb (commit)
       via  d7d1117bbd5e2441a93c6563ba628debac82741a (commit)
      from  660e8d8345bfe7f34dfc8db655eff6a0af8bd47f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit cab9d1a8bd750638efbff292093624bf5bdb8767
Author: Brett Smith <brett at curoverse.com>
Date:   Wed Apr 2 16:55:24 2014 -0400

    docker: Install staged source on Docker images.
    
    A separate build step to stage source makes it easier for us to fix
    permissions and do other clean-up before installing it in a Docker
    image.  It also reduces code redundancy; for example, builders don't
    have to worry about excluding log and tmp directories.

diff --git a/docker/.gitignore b/docker/.gitignore
index 66d1226..ff626a3 100644
--- a/docker/.gitignore
+++ b/docker/.gitignore
@@ -1,2 +1,2 @@
 *-image
-
+build/
diff --git a/docker/build_tools/Makefile b/docker/build_tools/Makefile
index e41b183..9eac2ec 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/*
 	- at 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,21 +113,21 @@ 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)
+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
 

commit d12e6551586651ee5251f70fac1b1c086674a835
Author: Brett Smith <brett at curoverse.com>
Date:   Wed Apr 2 16:41:50 2014 -0400

    docker: Tolerate existing tmp in api-image.

diff --git a/docker/api/Dockerfile b/docker/api/Dockerfile
index e1bb978..3c1a5af 100644
--- a/docker/api/Dockerfile
+++ b/docker/api/Dockerfile
@@ -37,7 +37,7 @@ RUN bundle install --gemfile=/usr/src/arvados/services/api/Gemfile && \
     ./script/create_superuser_token.rb $(cat /tmp/superuser_token) && \
     chown www-data:www-data config.ru && \
     chown www-data:www-data log -R && \
-    mkdir tmp && \
+    mkdir -p tmp && \
     chown www-data:www-data tmp -R
 
 # Configure Apache and Passenger.

commit 47d1fdfe8a1d7c4275f9b97f7ddf932e6671f0af
Author: Brett Smith <brett at curoverse.com>
Date:   Wed Apr 2 16:33:59 2014 -0400

    docker: `chmod go=rX` on generated files.
    
    That's not how this is implemented, but the end result should be the
    same.

diff --git a/docker/build_tools/config.rb b/docker/build_tools/config.rb
index ae69fe2..a31895b 100755
--- a/docker/build_tools/config.rb
+++ b/docker/build_tools/config.rb
@@ -24,7 +24,7 @@ end
 # For each *.in file in the docker directories, substitute any
 # @@variables@@ found in the file with the appropriate config
 # variable. Support up to 10 levels of nesting.
-# 
+#
 # TODO(twp): add the *.in files directory to the source tree, and
 # when expanding them, add them to the "generated" directory with
 # the same tree structure as in the original source. Then all
@@ -58,6 +58,10 @@ Dir.glob('*/*.in') do |template_file|
       output.write(line)
     end
   end
+  # Copy the owner's read+execute bits to group and other.
+  owner_perms = output.stat.mode & 0700
+  group_perms = (owner_perms & 0500) >> 3
+  output.chmod(owner_perms | group_perms | (group_perms >> 3))
   output.close
 end
 

commit 7449c28473b6a5f47148ee5ce321fa994db883cb
Author: Brett Smith <brett at curoverse.com>
Date:   Wed Apr 2 15:32:12 2014 -0400

    docker: Don't try shell expansion in Makefile.
    
    The original syntax, at least, is not supported.

diff --git a/docker/build_tools/Makefile b/docker/build_tools/Makefile
index 7fdad91..e41b183 100644
--- a/docker/build_tools/Makefile
+++ b/docker/build_tools/Makefile
@@ -110,27 +110,27 @@ api-image: passenger-image $(API_DEPS)
 	mkdir -p api/generated
 	tar -c -z -f api/generated/api.tar.gz -C ../services api --exclude=api/log/*
 	$(DOCKER_BUILD) -t arvados/api api
-	echo -n "Built at $(date)" > api-image
+	date >api-image
 
 doc-image: base-image $(DOC_DEPS)
 	mkdir -p doc/generated
 	tar -c -z -f doc/generated/doc.tar.gz -C .. doc
 	$(DOCKER_BUILD) -t arvados/doc doc
-	echo -n "Built at $(date)" > doc-image
+	date >doc-image
 
 workbench-image: passenger-image $(WORKBENCH_DEPS)
 	mkdir -p workbench/generated
 	tar -c -z -f workbench/generated/workbench.tar.gz -C ../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 +138,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

commit d7d1117bbd5e2441a93c6563ba628debac82741a
Author: Brett Smith <brett at curoverse.com>
Date:   Wed Apr 2 14:04:48 2014 -0400

    docker: Improve build.sh's Makefile finding.

diff --git a/docker/build_tools/build.rb b/docker/build_tools/build.rb
index 65f44ad..b1c5543 100755
--- a/docker/build_tools/build.rb
+++ b/docker/build_tools/build.rb
@@ -163,7 +163,7 @@ def install_docker
   linux_release = %x(lsb_release --release).split.last
   linux_version = linux_distro + " " + linux_release
   kernel_release = `uname -r`
-  
+
   case linux_distro
   when 'Ubuntu'
     if not linux_release.match '^1[234]\.'
@@ -209,7 +209,7 @@ end
 
 
 if __FILE__ == $PROGRAM_NAME
-  options = { :makefile => Dir.pwd + "/build_tools/Makefile" }
+  options = { :makefile => File.join(File.dirname(__FILE__), 'Makefile') }
   OptionParser.new do |opts|
     opts.on('-m', '--makefile MAKEFILE-PATH',
             'Path to the Makefile used to build Arvados Docker images') do |mk|

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list