X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/22fcc610c13c817c415cff26f2c94c17f271e4d3..13f6d45704efc68ca8419e8917376aa44fdee1be:/cmd/arvados-package/install.go diff --git a/cmd/arvados-package/install.go b/cmd/arvados-package/install.go index 85c64b867e..6b6113b952 100644 --- a/cmd/arvados-package/install.go +++ b/cmd/arvados-package/install.go @@ -21,6 +21,10 @@ import ( func testinstall(ctx context.Context, opts opts, stdin io.Reader, stdout, stderr io.Writer) error { depsImageName := "arvados-package-deps-" + opts.TargetOS depsCtrName := strings.Replace(depsImageName, ":", "-", -1) + absPackageDir, err := filepath.Abs(opts.PackageDir) + if err != nil { + return fmt.Errorf("error resolving PackageDir %q: %w", opts.PackageDir, err) + } _, prog := filepath.Split(os.Args[0]) tmpdir, err := ioutil.TempDir("", prog+".") @@ -40,19 +44,19 @@ func testinstall(ctx context.Context, opts opts, stdin io.Reader, stdout, stderr cmd := exec.CommandContext(ctx, "docker", "run", "--name", depsCtrName, "--tmpfs", "/tmp:exec,mode=01777", - "-v", opts.PackageDir+":/pkg:ro", + "-v", absPackageDir+":/pkg:ro", "--env", "DEBIAN_FRONTEND=noninteractive", opts.TargetOS, "bash", "-c", ` set -e -o pipefail -apt-get update +apt-get --allow-releaseinfo-change update apt-get install -y --no-install-recommends dpkg-dev eatmydata mkdir /tmp/pkg ln -s /pkg/*.deb /tmp/pkg/ (cd /tmp/pkg; dpkg-scanpackages --multiversion . | gzip > Packages.gz) echo >/etc/apt/sources.list.d/arvados-local.list "deb [trusted=yes] file:///tmp/pkg ./" -apt-get update +apt-get --allow-releaseinfo-change update eatmydata apt-get install -y --no-install-recommends arvados-server-easy postgresql eatmydata apt-get remove -y dpkg-dev @@ -64,7 +68,7 @@ rm /etc/apt/sources.list.d/arvados-local.list cmd.Stderr = stderr err = cmd.Run() if err != nil { - return fmt.Errorf("docker run: %w", err) + return fmt.Errorf("%v: %w", cmd.Args, err) } cmd = exec.CommandContext(ctx, "docker", "commit", depsCtrName, depsImageName) @@ -72,7 +76,7 @@ rm /etc/apt/sources.list.d/arvados-local.list cmd.Stderr = stderr err = cmd.Run() if err != nil { - return fmt.Errorf("docker commit: %w", err) + return fmt.Errorf("%v: %w", cmd.Args, err) } } @@ -81,14 +85,29 @@ rm /etc/apt/sources.list.d/arvados-local.list versionsuffix = "=" + opts.PackageVersion } cmd := exec.CommandContext(ctx, "docker", "run", "--rm", - "--tmpfs", "/tmp:exec,mode=01777", - "-v", opts.PackageDir+":/pkg:ro", - "--env", "DEBIAN_FRONTEND=noninteractive", + "--tmpfs=/tmp:exec,mode=01777", + "--volume="+absPackageDir+":/pkg:ro", + "--env=DEBIAN_FRONTEND=noninteractive") + if opts.Live != "" { + cmd.Args = append(cmd.Args, + "--env=domain="+opts.Live, + "--env=bootargs=", + "--publish=:443:443", + "--publish=:4440-4460:4440-4460", + "--publish=:9000-9020:9000-9020", + "--add-host="+opts.Live+":0.0.0.0", + "--volume=/var/lib/acme:/var/lib/acme:ro") + } else { + cmd.Args = append(cmd.Args, + "--env=domain=localhost", + "--env=bootargs=-shutdown") + } + cmd.Args = append(cmd.Args, depsImageName, "bash", "-c", ` set -e -o pipefail PATH="/var/lib/arvados/bin:$PATH" -apt-get update +apt-get --allow-releaseinfo-change update apt-get install -y --no-install-recommends dpkg-dev mkdir /tmp/pkg ln -s /pkg/*.deb /tmp/pkg/ @@ -97,19 +116,19 @@ apt-get remove -y dpkg-dev echo echo >/etc/apt/sources.list.d/arvados-local.list "deb [trusted=yes] file:///tmp/pkg ./" -apt-get update +apt-get --allow-releaseinfo-change update eatmydata apt-get install --reinstall -y --no-install-recommends arvados-server-easy`+versionsuffix+` SUDO_FORCE_REMOVE=yes apt-get autoremove -y /etc/init.d/postgresql start -arvados-server init -cluster-id x1234 -exec arvados-server boot -listen-host 0.0.0.0 -shutdown +arvados-server init -cluster-id x1234 -domain=$domain -login=test -insecure +exec arvados-server boot -listen-host=0.0.0.0 -no-workbench2=false $bootargs `) cmd.Stdout = stdout cmd.Stderr = stderr err = cmd.Run() if err != nil { - return fmt.Errorf("docker run: %w", err) + return fmt.Errorf("%v: %w", cmd.Args, err) } return nil }