package main import ( "dagger.io/dagger" "dagger.io/dagger/op" "dagger.io/aws" "dagger.io/aws/ecr" ) // Build an image and push it to ECR #ECRImage: { source: dagger.#Artifact // Path of the Dockerfile dockerfilePath?: string repository: string tag: string awsConfig: aws.#Config buildArgs: [string]: string // Use these credentials to push ecrCreds: ecr.#Credentials & { config: awsConfig } ref: { string #up: [ // Build the docker image op.#DockerBuild & { context: source if dockerfilePath != _|_ { "dockerfilePath": dockerfilePath } buildArg: buildArgs }, // Login to Registry op.#DockerLogin & { target: repository username: ecrCreds.username secret: ecrCreds.secret }, // Push the image to the registry op.#PushContainer & { ref: "\(repository):\(tag)" }, op.#Export & { source: "/dagger/image_ref" format: "string" }, ] } }