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}" \
)
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 \
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 \
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