package docker import ( "alpha.dagger.io/aws" "alpha.dagger.io/aws/ecr" "alpha.dagger.io/dagger" "alpha.dagger.io/dagger/op" "alpha.dagger.io/random" "alpha.dagger.io/alpine" ) // // /!\ README /!\ // The objective is to push an image on multiple registries to verify // that we correctly handle that kind of configuration // TestResources: { // Generate a random string // Seed is used to force buildkit execution and not simply use a previous generated string. suffix: random.#String & {seed: "docker multi registry"} image: #ImageFromDockerfile & { dockerfile: """ FROM alpine RUN echo "test" > /test.txt """ context: "" } } TestRemoteAWS: { awsConfig: aws.#Config ecrCreds: ecr.#Credentials & { config: awsConfig } target: "125635003186.dkr.ecr.\(awsConfig.region).amazonaws.com/dagger-ci:test-ecr-\(TestResources.suffix.out)" remoteImg: #Push & { "target": target source: TestResources.image auth: { username: ecrCreds.username secret: ecrCreds.secret } } } #TestGetSecret: { secret: dagger.#Artifact out: { string #up: [ op.#Load & {from: alpine.#Image}, op.#Exec & { always: true args: ["sh", "-c", "cp /input/secret /secret"] mount: "/input/secret": "secret": secret }, op.#Export & { source: "/secret" }, ] } } TestRemoteDocker: { dockerConfig: { username: string & dagger.#Input secret: dagger.#Secret & dagger.#Input } secret: #TestGetSecret & { secret: dockerConfig.secret } target: "daggerio/ci-test:test-docker-\(TestResources.suffix.out)" remoteImg: #Push & { "target": target source: TestResources.image auth: { username: dockerConfig.username "secret": secret.out } } }