From 6c1fd146c0b22b374f00ef94c961df8e1e1913a7 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Mon, 28 Dec 2020 10:32:13 -0500 Subject: [PATCH] 16306: Use tmpfs to speed up package building. Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- cmd/arvados-dev/docker-build-install.sh | 4 +++- lib/install/deps.go | 9 ++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/cmd/arvados-dev/docker-build-install.sh b/cmd/arvados-dev/docker-build-install.sh index 7b7f25ff9d..966318b94c 100755 --- a/cmd/arvados-dev/docker-build-install.sh +++ b/cmd/arvados-dev/docker-build-install.sh @@ -63,7 +63,7 @@ if [[ "${opts[force-buildimage]}" || -z "$(docker images --format {{.Repository} docker rm "${buildctr}" || true docker run \ --name "${buildctr}" \ - -v /tmp/pkg:/pkg \ + --tmpfs /tmp:exec,mode=01777 \ -v "${GOPATH:-${HOME}/go}"/bin/arvados-server:/arvados-server:ro \ -v "$(pwd)":/arvados:ro \ "${osbase}" \ @@ -87,6 +87,7 @@ rm -v -f "${pkgfile}" ) echo >&2 building ${pkgfile}... docker run --rm \ + --tmpfs /tmp:exec,mode=01777 \ -v /tmp/pkg:/pkg \ -v "${GOPATH:-${HOME}/go}"/bin/arvados-dev:/arvados-dev:ro \ -v "$(pwd)":/arvados:ro \ @@ -113,6 +114,7 @@ if [[ "${opts[force-installimage]}" || -z "$(docker images --format {{.Repositor docker rm "${installctr}" || true docker run -it \ --name "${installctr}" \ + --tmpfs /tmp \ -v /tmp/pkg:/pkg:ro \ -v ${sourcesfile}:/etc/apt/sources.list.d/arvados-local.list:ro \ --env DEBIAN_FRONTEND=noninteractive \ diff --git a/lib/install/deps.go b/lib/install/deps.go index 34fe7cc6d1..2b0faefe26 100644 --- a/lib/install/deps.go +++ b/lib/install/deps.go @@ -224,17 +224,16 @@ func (inst *installCommand) RunCommand(prog string, args []string, stdin io.Read logger.Print("ruby " + rubyversion + " already installed") } else { err = inst.runBash(` -tmp=/var/lib/arvados/tmp/ruby-`+rubyversion+` -trap "rm -r ${tmp}" ERR -wget --progress=dot:giga -O- https://cache.ruby-lang.org/pub/ruby/2.5/ruby-`+rubyversion+`.tar.gz | tar -C /var/lib/arvados/tmp -xzf - -cd ${tmp} +tmp="$(mktemp -d)" +trap 'rm -r "${tmp}"' ERR EXIT +wget --progress=dot:giga -O- https://cache.ruby-lang.org/pub/ruby/2.5/ruby-`+rubyversion+`.tar.gz | tar -C "${tmp}" -xzf - +cd "${tmp}/ruby-`+rubyversion+`" ./configure --disable-install-static-library --enable-shared --disable-install-doc --prefix /var/lib/arvados make -j8 make install /var/lib/arvados/bin/gem install bundler --no-ri --no-rdoc # "gem update --system" can be removed when we use ruby ≥2.6.3: https://bundler.io/blog/2019/05/14/solutions-for-cant-find-gem-bundler-with-executable-bundle.html /var/lib/arvados/bin/gem update --system --no-ri --no-rdoc -rm -r ${tmp} `, stdout, stderr) if err != nil { return 1 -- 2.30.2