#issue with export?

1 messages · Page 1 of 1 (latest)

proud jetty
#

Hi,
Are you aware of any issue with directory.Export?

We are cloning a repo and trying to export and somehow it gets stuck. It only happens with this particular repo (maybe because it’s quite big?)

#2 0.137 Cloning into 'clonedRepo'...
#2 24.30 Updating files: 2% (473/19914)
Updating files: 3% (598/19914)
Updating files: 95% (18919/19914)
Updating files: 96% (19118/19914)
Updating files: 97% (19317/19914)
Updating files: 98% (19
Updating files: 99% (19715/19914)
Updating files: 100% (19914/19914)
Updating files: 100% (19914/19914), done.
#2 DONE 33.4s
#2
#2 DONE 36.8s
#4 exporting to client directory
#4 copying files 7.99MB 0.1s
#4 copying files 375.43MB 5.1s

The code looks like this:

container := client.Container().From(gitContainer)
container = container.WithWorkdir("/src")
//container = container.WithMountedDirectory("/src", src).WithWorkdir("/src")

container = container.
WithExec([]string{
"clone",
"--depth",
"1",
"-b",
originBranch,
fmt.Sprintf("https://%s:%s@%s", "oauth2", token, repoURL),
"clonedRepo",
})

l, err := container.Stdout(ctx)
if err != nil {
stderr, _ := container.Stderr(ctx)
fmt.Println(stderr)
return err
}

fmt.Println(l)

fls, err := container.Directory("/src/clonedRepo").Entries(context.Background())
if err != nil {
return err
}

fmt.Println(fls)

output := container.Directory("/src/clonedRepo")

out, err := output.Export(ctx, exportedDir)
if err != nil {
fmt.Println(out)
fmt.Println(err.Error())
return err
}

fmt.Println("Done with Exporting")

return err

proud jetty
#

You should be able to reproduce it like this:
package main

import (
"context"
"fmt"
"log"
"os"

"dagger.io/dagger"

)

var gitContainer = "alpine/git"

func main() {
ctx := context.Background()
client, err := dagger.Connect(context.Background(), dagger.WithLogOutput(os.Stdout))
if err != nil {
log.Fatal()
}

container := client.Container().From(gitContainer)

container = container.WithWorkdir("/src")

container = container.
    WithExec([]string{
        "clone",
        "https://github.com/tensorflow/tensorflow.git",
        "clonedRepo",
    })

_, err = container.Stdout(ctx)
if err != nil {
    stderr, _ := container.Stderr(ctx)
    fmt.Println(stderr)
    log.Fatal(err.Error())
}

container = container.
    WithWorkdir("/src/clonedRepo").
    WithExec([]string{
        "checkout",
        "-b",
        "test",
    })
_, err = container.Stdout(ctx)
if err != nil {
    stderr, _ := container.Stderr(ctx)
    fmt.Println(stderr)
    log.Fatal(err.Error())
}

output := container.Directory("/src/clonedRepo")
/*
    lst, _ := output.Entries(ctx)
    fmt.Println(lst)

    output = output.WithoutDirectory("tensorflow")

    lst, _ = output.Entries(ctx)
    fmt.Println(lst)
*/
_, err = output.Export(ctx, "/tmp/tensorflow/")
if err != nil {
    log.Fatal(err.Error())
}

}

#

Btw, also the WithoutDirectory is not working

austere hollow
#

👋 this works:

package main

import (
    "context"
    "log"
    "os"

    "dagger.io/dagger"
)

func main() {
    ctx := context.Background()
    client, err := dagger.Connect(context.Background(), dagger.WithLogOutput(os.Stdout))
    if err != nil {
        log.Fatal()
    }

    _, err = client.Git("github.com/tensorflow/tensorflow").
        Branch("master").Tree().Export(ctx, "/tmp/tensorflow")
    if err != nil {
        log.Fatal(err.Error())
    }
}
#

let us know if you're still running into some other issues please 🙏