Closed kaykhan closed 4 days ago
The documentation for go is not great, but this works for me without issues.
package main
import (
"fmt"
"github.com/aws/aws-cdk-go/awscdk/v2"
"github.com/aws/aws-cdk-go/awscdk/v2/awsecrassets"
"github.com/aws/constructs-go/constructs/v10"
"github.com/aws/jsii-runtime-go"
"github.com/cdklabs/cdk-ecr-deployment-go/cdkecrdeployment/v3"
)
type EcrgoStackProps struct {
awscdk.StackProps
}
func NewEcrgoStack(scope constructs.Construct, id string, props *EcrgoStackProps) awscdk.Stack {
var sprops awscdk.StackProps
if props != nil {
sprops = props.StackProps
}
stack := awscdk.NewStack(scope, &id, &sprops)
image := awsecrassets.NewDockerImageAsset(stack, jsii.String("CDKDockerImage"), &awsecrassets.DockerImageAssetProps{
Directory: jsii.String("docker"),
})
// Copy from cdk docker image asset to another ECR.
cdkecrdeployment.NewECRDeployment(stack, jsii.String("DeployDockerImage1"), &cdkecrdeployment.ECRDeploymentProps{
Src: cdkecrdeployment.NewDockerImageName(image.ImageUri(), nil),
Dest: cdkecrdeployment.NewDockerImageName(jsii.String(fmt.Sprintf("%v.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest", awscdk.Aws_ACCOUNT_ID())), nil),
})
return stack
}
func main() {
defer jsii.Close()
app := awscdk.NewApp(nil)
NewEcrgoStack(app, "EcrgoStack", &EcrgoStackProps{
awscdk.StackProps{
Env: env(),
},
})
app.Synth(nil)
}
func env() *awscdk.Environment {
return nil
}
For posterity - it didn't work because the source repository was set to Private, which has since been fixed: https://github.com/cdklabs/cdk-ecr-deployment/issues/231#issuecomment-2418923482
I am trying to use this package in golang aws cdk project but trying to install it i get
https://constructs.dev/packages/cdk-ecr-deployment/v/3.0.117/api/ECRDeploymentProps?lang=go