10 "git.arvados.org/arvados.git/lib/cmd"
14 handler = cmd.Multi(map[string]cmd.Handler{
15 "version": cmd.Version,
16 "-version": cmd.Version,
17 "--version": cmd.Version,
19 "import": &importer{},
20 "export-numpy": &exportNumpy{},
21 "filter": &filterer{},
22 "build-docker-image": &buildDockerImage{},
24 "plot": &pythonPlot{},
29 os.Exit(handler.RunCommand(os.Args[0], os.Args[1:], os.Stdin, os.Stdout, os.Stderr))
32 type buildDockerImage struct{}
34 func (cmd *buildDockerImage) RunCommand(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int {
35 tmpdir, err := ioutil.TempDir("", "")
37 fmt.Fprint(stderr, err)
40 defer os.RemoveAll(tmpdir)
41 err = ioutil.WriteFile(tmpdir+"/Dockerfile", []byte(`FROM debian:10
42 RUN DEBIAN_FRONTEND=noninteractive \
44 apt-get dist-upgrade -y && \
45 apt-get install -y --no-install-recommends bcftools samtools python3-sklearn python3-matplotlib && \
49 fmt.Fprint(stderr, err)
52 docker := exec.Command("docker", "build", "--tag=lightning-runtime", tmpdir)
53 docker.Stdout = stdout
54 docker.Stderr = stderr
59 fmt.Fprintf(stderr, "built and tagged new docker image, lightning-runtime\n")