Hey guys, I've made a few tangential posts about this, really hoping there's a possible workaround, but I dont think dagger can really work with large amounts of data?
Here's the tl;dr of my situation.
- I'm working on a new build pipeline that requires about 500GB of source code data to be present at build time.
- I cannot seem to find an API in either API (modules or classic) that lets me mount this directory without sending it over a wire somehow - this is basically a dealbreaker, transferring this much data over the wire takes like 6 hours.
Here's my current code.
yoctoWorkspace := "/home/ubuntu/firmware-vendor"
yoctoWorkspaceDir := client.Host().Directory(yoctoWorkspace)
out, err := client.Container().From("public.ecr.aws/firmware-vendor-20.04").
WithExec([]string{"/bin/create-user.sh", "1000", "1000"}).
WithUser("turbox").WithWorkdir("/home/user/workspace").
WithMountedDirectory("/home/user/workspace", yoctoWorkspaceDir).
WithExec([]string{"./firmware-vendor_bitbake_build.sh", "-a", "-l"}).Stdout(ctx)
fmt.Println(out)
Which results in the daemon basically hanging on "uploading" the files to the daemon.
This build could work fine in jenkins, GHA, or other through just a docker container and mounted volume, no sweat. Hoping that I'm just missing something simple and I get the same kind of functionality out of dagger.
I guess I'm just posting a last ditch effort here to keep dagger before I have to abandon ship and pick a new solution for this build. Is there anything I can do to run builds this large via dagger?
