sparse-umbrella-88444
10/18/2023, 8:19 AMstraight-cartoon-24485
10/18/2023, 10:22 PMsparse-umbrella-88444
11/01/2023, 9:18 PMname: docker-pulumi-test
runtime: go
description: A minimal Go Pulumi program
Any idea what config I am missing?straight-cartoon-24485
11/01/2023, 9:48 PMrich-alligator-53421
11/01/2023, 9:48 PMcuddly-computer-18851
11/01/2023, 11:01 PMsparse-umbrella-88444
11/02/2023, 6:33 AMfunc buildImage(ctx *pulumi.Context, imageName string, platform string, dockerfilePath string) error {
if ctx == nil {
log.Error("Pulumi context is nil")
return fmt.Errorf("Pulumi context is nil")
}
if _, err := os.Stat(dockerfilePath); os.IsNotExist(err) {
log.WithField("dockerfilePath", dockerfilePath).Error("Dockerfile does not exist")
return fmt.Errorf("Dockerfile does not exist at the specified path")
}
username := os.Getenv("DOCKERHUB_USERNAME")
password := os.Getenv("DOCKERHUB_PASSWORD")
server := "<https://index.docker.io/v1>"
builtImage, err := docker.NewImage(ctx, imageName, &docker.ImageArgs{
Build: &docker.DockerBuildArgs{
Context: pulumi.String("."),
Dockerfile: pulumi.String(dockerfilePath),
Args: pulumi.StringMap{
"BUILDKIT_INLINE_CACHE": pulumi.String("1"),
"platform": pulumi.String(platform),
},
Platform: pulumi.String(platform),
},
ImageName: pulumi.String(imageName),
Registry: &docker.RegistryArgs{
Server: pulumi.String(server),
Username: pulumi.String(username),
Password: pulumi.String(password),
},
})
if err != nil {
log.WithFields(log.Fields{
"imageName": imageName,
"platform": platform,
}).Errorf("Error building Docker image: %s", err)
return fmt.Errorf("Error building Docker image: %w", err)
} else {
builtImage.ImageName.ApplyT(func(name string) error {
log.WithFields(log.Fields{
"imageName": imageName,
"platform": platform,
"imageID": name,
}).Infof("Successfully built and pushed Docker image with ID %s", name)
return nil
})
return nil
}
}