I have a container:
func (m *Headway) TileserverInitImage(ctx context.Context,
// +defaultPath="./services/tileserver"
serviceDir *dagger.Directory,
) *dagger.Container {
return downloadContainer().
WithFile("/app/init.sh", serviceDir.File("init.sh")).
WithDefaultArgs([]string{"/app/init.sh"})
}
Which I can successfully build and export from the cli:
๐ Success:
โถ tileserver-init-image | export-image tileserver-init 0.5s
I want to export several similar containers, and so I thought to orchestrate this I'd need to call exportImage from golang, like so:
func (m *Headway) ExportTileserverInitImage(ctx context.Context,
// +defaultPath="./services/tileserver"
serviceDir *dagger.Directory,
) error {
container := m.TileserverInitImage(ctx, serviceDir)
return container.ExportImage(ctx, "tileserver-init")
}
But when I invoke export-tileserver-init-image I get this error:
โผ export-tileserver-init-image 1.1s ERROR r jump โด
โฐโโผ Headway.exportTileserverInitImage(
โ โ serviceDir: Host.directory(path: "/Users/mkirk/src/headwaymaps/headway/services/tileserver", exclude: [], noCach
โ ): Void 1.0s ERROR
! client has no supported api for loading image
โโโ Directory.file(path: "init.sh"): File! 0.0s
โ
โโโ container: Container! 0.0s
โโ$ .from(address: "debian:bookworm-slim"): Container! 0.7s CACHED
โโโ .withWorkdir(path: "/data"): Container! 0.0s
โโ$ .withExec(
โ โ args: ["sh", "-c", "apt-get update && apt-get install -y --no-install-recommends wget ca-certificates zstd &&
โ ): Container! 0.0s CACHED
โโ$ .withFile(
โ โ path: "/app/init.sh"
โ โ source: Directory.file(path: "init.sh"): File!
โ ): Container! 0.0s CACHED
โโโ .withDefaultArgs(args: ["/app/init.sh"]): Container! 0.0s
โฐโโ .exportImage(name: "tileserver-init"): Void! 0.0s ERROR
! client has no supported api for loading image
Am I holding it wrong?