Skip to content

ecr.NewImage CacheFrom adds --target to docker build #1072

@afreakk

Description

@afreakk

What happened?

When using ecr.NewImage and adding CacheFrom attribute on ImageArgs it also adds --target to `docker build.
Which causes:

error: Error: The target "123.dkr.ecr.eu-central-1.amazonaws.com/myImage:latest" was not found in the provided Dockerfile
 Error: 
docker build --cache-from 123.dkr.ecr.eu-central-1.amazonaws.com/myImage /a/b/c/myImage -t \
46b0e6fe-container-123.dkr.ecr.eu-central-1.amazonaws.com/myImage:latest \
--target 123.dkr.ecr.eu-central-1.amazonaws.com/myImage:latest
ailed with exit code 125
        at /home/afreak/.pulumi/plugins/resource-awsx-v1.0.0-beta.2/node_modules/@pulumi/docker.ts:592:15
        at Generator.next (<anonymous>)
        at fulfilled (/home/afreak/.pulumi/plugins/resource-awsx-v1.0.0-beta.2/node_modules/@pulumi/docker/docker.js:18:58)
        at processTicksAndRejections (node:internal/process/task_queues:95:5)

This is the code being used:

package main

import (
	"github.com/pulumi/pulumi-awsx/sdk/go/awsx/ecr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := ecr.NewImage(ctx, "test", &ecr.ImageArgs{
			RepositoryUrl: pulumi.String("123.dkr.ecr.eu-central-1.amazonaws.com/myImage"),
			Path:          pulumi.String("/home/afreak/myImage"),
			CacheFrom:     pulumi.StringArray{pulumi.String("123.dkr.ecr.eu-central-1.amazonaws.com/myImage:latest")},
		})
		return err
	})
}

Expected Behavior

docker build should not have the --target flag, when I have only used the CacheFrom attribute.

Steps to reproduce

package main

import (
	"github.com/pulumi/pulumi-awsx/sdk/go/awsx/ecr"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := ecr.NewImage(ctx, "test", &ecr.ImageArgs{
			RepositoryUrl: pulumi.String("123.dkr.ecr.eu-central-1.amazonaws.com/myImage"),
			Path:          pulumi.String("/home/afreak/myImage"),
			CacheFrom:     pulumi.StringArray{pulumi.String("123.dkr.ecr.eu-central-1.amazonaws.com/myImage:latest")},
		})
		return err
	})
}

Output of pulumi about

at 08:37:46 ❯ pulumi about
CLI
Version      3.57.1
Go Version   go1.20.2
Go Compiler  gc

Plugins
NAME  VERSION
go    unknown

Host
OS       nixos
Version  23.11 (Tapir)
Arch     x86_64

This project is written in go: executable='/nix/store/ap84qp98r43gqpm6v9y6b1i5c7ybx344-go-1.18.10/bin/go' version='go version go1.18.10 linux/amd64'

Current Stack: fiveten/aws-auth-0-dev/euc1

TYPE                                                    URN
pulumi:pulumi:Stack                                     urn:pulumi:euc1::aws-auth-0-dev::pulumi:pulumi:Stack::aws-auth-0-dev-euc1
pulumi:providers:pulumi                                 urn:pulumi:euc1::aws-auth-0-dev::pulumi:providers:pulumi::default
pulumi:providers:aws                                    urn:pulumi:euc1::aws-auth-0-dev::pulumi:providers:aws::default
pulumi:providers:random                                 urn:pulumi:euc1::aws-auth-0-dev::pulumi:providers:random::default
random:index/randomString:RandomString                  urn:pulumi:euc1::aws-auth-0-dev::random:index/randomString:RandomString::Oauth2-Secret-bed6a3
random:index/randomString:RandomString                  urn:pulumi:euc1::aws-auth-0-dev::random:index/randomString:RandomString::Oauth2-Secret-ed0b1e
random:index/randomString:RandomString                  urn:pulumi:euc1::aws-auth-0-dev::random:index/randomString:RandomString::Oauth2-Secret-bf98e7
random:index/randomString:RandomString                  urn:pulumi:euc1::aws-auth-0-dev::random:index/randomString:RandomString::Oauth2-Secret-5b8da1e
random:index/randomPassword:RandomPassword              urn:pulumi:euc1::aws-auth-0-dev::random:index/randomPassword:RandomPassword::password
random:index/randomString:RandomString                  urn:pulumi:euc1::aws-auth-0-dev::random:index/randomString:RandomString::kratosCipherSecret
pulumi:pulumi:StackReference                            urn:pulumi:euc1::aws-auth-0-dev::pulumi:pulumi:StackReference::fiveten/aws-cluster-0-dev/euc1
random:index/randomString:RandomString                  urn:pulumi:euc1::aws-auth-0-dev::random:index/randomString:RandomString::kratosDefaultSecret
fiveten:k8sComponent:nodeAuthorizer                     urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:nodeAuthorizer::nodeauthorizer
random:index/randomString:RandomString                  urn:pulumi:euc1::aws-auth-0-dev::random:index/randomString:RandomString::kratosCookieSecret
random:index/randomString:RandomString                  urn:pulumi:euc1::aws-auth-0-dev::random:index/randomString:RandomString::HydraCookieSecret
random:index/randomString:RandomString                  urn:pulumi:euc1::aws-auth-0-dev::random:index/randomString:RandomString::HydraSystemSecret
random:index/randomString:RandomString                  urn:pulumi:euc1::aws-auth-0-dev::random:index/randomString:RandomString::BackofficeOauth2Secret
fiveten:k8sComponent:hydra                              urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:hydra::hydra
random:index/randomString:RandomString                  urn:pulumi:euc1::aws-auth-0-dev::random:index/randomString:RandomString::ChristianClientSecret
pulumi:pulumi:StackReference                            urn:pulumi:euc1::aws-auth-0-dev::pulumi:pulumi:StackReference::fiveten/aws-region-0-dev/euc1
random:index/randomString:RandomString                  urn:pulumi:euc1::aws-auth-0-dev::random:index/randomString:RandomString::TrondAtDxKratosPassword
fiveten:k8sComponent:oathkeeper                         urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:oathkeeper::oathkeeper
pulumi:providers:command                                urn:pulumi:euc1::aws-auth-0-dev::pulumi:providers:command::default
fiveten:k8sComponent:deploymentSvcHPA                   urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:nodeAuthorizer$fiveten:k8sComponent:deploymentSvcHPA::nodeauthorizer
pulumi:providers:kubernetes                             urn:pulumi:euc1::aws-auth-0-dev::pulumi:providers:kubernetes::k8sProvider
command:local:Command                                   urn:pulumi:euc1::aws-auth-0-dev::command:local:Command::jwksKeysetForOathkeeper
random:index/randomString:RandomString                  urn:pulumi:euc1::aws-auth-0-dev::random:index/randomString:RandomString::HansAtDxKratosPassword
random:index/randomString:RandomString                  urn:pulumi:euc1::aws-auth-0-dev::random:index/randomString:RandomString::ChristianAtDxKratosPassword
pulumi:providers:awsx                                   urn:pulumi:euc1::aws-auth-0-dev::pulumi:providers:awsx::default
kubernetes:core/v1:Namespace                            urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:nodeAuthorizer$fiveten:k8sComponent:deploymentSvcHPA$kubernetes:core/v1:Namespace::nodeauthorizer-ns
kubernetes:autoscaling/v2beta2:HorizontalPodAutoscaler  urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:nodeAuthorizer$fiveten:k8sComponent:deploymentSvcHPA$kubernetes:autoscaling/v2beta2:HorizontalPodAutoscaler::nodeauthorizer
aws:ec2/securityGroup:SecurityGroup                     urn:pulumi:euc1::aws-auth-0-dev::aws:ec2/securityGroup:SecurityGroup::authRdsClusterSecurityGroup
aws:rds/subnetGroup:SubnetGroup                         urn:pulumi:euc1::aws-auth-0-dev::aws:rds/subnetGroup:SubnetGroup::auth-rds-subnet-group
kubernetes:core/v1:Service                              urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:nodeAuthorizer$fiveten:k8sComponent:deploymentSvcHPA$kubernetes:core/v1:Service::nodeauthorizer
kubernetes:core/v1:ConfigMap                            urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:nodeAuthorizer$fiveten:k8sComponent:deploymentSvcHPA$kubernetes:core/v1:ConfigMap::env-vars
kubernetes:core/v1:Secret                               urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:nodeAuthorizer$fiveten:k8sComponent:deploymentSvcHPA$kubernetes:core/v1:Secret::secret-env-vars
awsx:ecr:Repository                                     urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:nodeAuthorizer$awsx:ecr:Repository::nodeauthorizer
aws:rds/cluster:Cluster                                 urn:pulumi:euc1::aws-auth-0-dev::aws:rds/cluster:Cluster::postgresql
pulumi:providers:aws                                    urn:pulumi:euc1::aws-auth-0-dev::pulumi:providers:aws::default_5_4_0
aws:ecr/repository:Repository                           urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:nodeAuthorizer$awsx:ecr:Repository$aws:ecr/repository:Repository::nodeauthorizer
aws:rds/clusterInstance:ClusterInstance                 urn:pulumi:euc1::aws-auth-0-dev::aws:rds/clusterInstance:ClusterInstance::postgresql-instance-auth
aws:rds/clusterInstance:ClusterInstance                 urn:pulumi:euc1::aws-auth-0-dev::aws:rds/clusterInstance:ClusterInstance::postgresql-instance-auth-1
fiveten:k8sComponent:kratos                             urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:kratos::kratos
pulumi:providers:postgresql                             urn:pulumi:euc1::aws-auth-0-dev::pulumi:providers:postgresql::provider-for-postgresql-rds
aws:ecr/lifecyclePolicy:LifecyclePolicy                 urn:pulumi:euc1::aws-auth-0-dev::aws:ecr/lifecyclePolicy:LifecyclePolicy::nodeauthorizer
postgresql:index/database:Database                      urn:pulumi:euc1::aws-auth-0-dev::postgresql:index/database:Database::hydradb
kubernetes:helm.sh/v3:Release                           urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:kratos$kubernetes:helm.sh/v3:Release::kratos
kubernetes:helm.sh/v3:Release                           urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:hydra$kubernetes:helm.sh/v3:Release::hydra
kubernetes:batch/v1:Job                                 urn:pulumi:euc1::aws-auth-0-dev::kubernetes:batch/v1:Job::bootstrap-kratos-users
awsx:ecr:Repository                                     urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:kratos$awsx:ecr:Repository::kratos-selfservice-docker-image
kubernetes:helm.sh/v3:Release                           urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:oathkeeper$kubernetes:helm.sh/v3:Release::oathkeeper
kubernetes:core/v1:Secret                               urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:hydra$kubernetes:helm.sh/v3:Release$kubernetes:core/v1:Secret::hydra-clients-secret-christian
kubernetes:core/v1:Secret                               urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:hydra$kubernetes:helm.sh/v3:Release$kubernetes:core/v1:Secret::hydra-clients-secret-5b8da1e
kubernetes:core/v1:Secret                               urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:hydra$kubernetes:helm.sh/v3:Release$kubernetes:core/v1:Secret::hydra-clients-secret-backoffice-vercel-functions
kubernetes:core/v1:Secret                               urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:hydra$kubernetes:helm.sh/v3:Release$kubernetes:core/v1:Secret::hydra-clients-secret-ed0b1e
kubernetes:core/v1:Secret                               urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:hydra$kubernetes:helm.sh/v3:Release$kubernetes:core/v1:Secret::hydra-clients-secret-bed6a3
kubernetes:core/v1:Secret                               urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:hydra$kubernetes:helm.sh/v3:Release$kubernetes:core/v1:Secret::hydra-clients-secret-bf98e7
aws:ecr/repository:Repository                           urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:kratos$awsx:ecr:Repository$aws:ecr/repository:Repository::kratos-selfservice-docker-image
kubernetes:hydra.ory.sh/v1alpha1:OAuth2Client           urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:hydra$kubernetes:helm.sh/v3:Release$kubernetes:hydra.ory.sh/v1alpha1:OAuth2Client::hydra-clients-crd-backoffice-vercel-functions
kubernetes:hydra.ory.sh/v1alpha1:OAuth2Client           urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:hydra$kubernetes:helm.sh/v3:Release$kubernetes:hydra.ory.sh/v1alpha1:OAuth2Client::hydra-clients-crd-christian
kubernetes:hydra.ory.sh/v1alpha1:OAuth2Client           urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:hydra$kubernetes:helm.sh/v3:Release$kubernetes:hydra.ory.sh/v1alpha1:OAuth2Client::hydra-clients-crd-5b8da1e
kubernetes:hydra.ory.sh/v1alpha1:OAuth2Client           urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:hydra$kubernetes:helm.sh/v3:Release$kubernetes:hydra.ory.sh/v1alpha1:OAuth2Client::hydra-clients-crd-ed0b1e
kubernetes:hydra.ory.sh/v1alpha1:OAuth2Client           urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:hydra$kubernetes:helm.sh/v3:Release$kubernetes:hydra.ory.sh/v1alpha1:OAuth2Client::hydra-clients-crd-bf98e7
kubernetes:hydra.ory.sh/v1alpha1:OAuth2Client           urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:hydra$kubernetes:helm.sh/v3:Release$kubernetes:hydra.ory.sh/v1alpha1:OAuth2Client::hydra-clients-crd-bed6a3
aws:ecr/lifecyclePolicy:LifecyclePolicy                 urn:pulumi:euc1::aws-auth-0-dev::aws:ecr/lifecyclePolicy:LifecyclePolicy::kratos-selfservice-docker-image
awsx:ecr:Image                                          urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:nodeAuthorizer$awsx:ecr:Image::nodeauthorizer
awsx:ecr:Image                                          urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:kratos$awsx:ecr:Image::kratos-selfservice-docker-image
kubernetes:helm.sh/v3:Release                           urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:kratos$kubernetes:helm.sh/v3:Release::kratos-selfservice-helm
kubernetes:apps/v1:Deployment                           urn:pulumi:euc1::aws-auth-0-dev::fiveten:k8sComponent:nodeAuthorizer$fiveten:k8sComponent:deploymentSvcHPA$kubernetes:apps/v1:Deployment::nodeauthorizer


Found no pending operations associated with fiveten/euc1

Backend
Name           pulumi.com
URL            https://app.pulumi.com/afreakk
User           afreakk
Organizations  afreakk, fiveten

Additional context

No response

Contributing

Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

Metadata

Metadata

Assignees

Labels

kind/bugSome behavior is incorrect or out of specresolution/fixedThis issue was fixed

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions