3.0.55 • Published 2 days ago

cdk-ecr-deployment v3.0.55

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 days ago

cdk-ecr-deployment

Release npm version PyPI npm PyPI - Downloads

CDK construct to synchronize single docker image between docker registries.

⚠️ Version 1.* is no longer supported, as CDK v1 has reached the end-of-life stage. Please use only ^2.0.0.

Features

  • Copy image from ECR/external registry to (another) ECR/external registry
  • Copy an archive tarball image from s3 to ECR/external registry

Environment variables

Enable flags: true, 1. e.g. export CI=1

  • CI indicate if it's CI environment. This flag will enable building lambda from scratch.
  • NO_PREBUILT_LAMBDA disable using prebuilt lambda.
  • FORCE_PREBUILT_LAMBDA force using prebuilt lambda.

⚠️ If you want to force using prebuilt lambda in CI environment to reduce build time. Try export FORCE_PREBUILT_LAMBDA=1.

⚠️ The above flags are only available in cdk-ecr-deployment 2.x and 3.x.

Examples

import { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets';

const image = new DockerImageAsset(this, 'CDKDockerImage', {
  directory: path.join(__dirname, 'docker'),
});

// Copy from cdk docker image asset to another ECR.
new ecrdeploy.ECRDeployment(this, 'DeployDockerImage1', {
  src: new ecrdeploy.DockerImageName(image.imageUri),
  dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx:latest`),
});

// Copy from docker registry to ECR.
new ecrdeploy.ECRDeployment(this, 'DeployDockerImage2', {
  src: new ecrdeploy.DockerImageName('nginx:latest'),
  dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx2:latest`),
});

// Copy from private docker registry to ECR.
// The format of secret in aws secrets manager must be plain text! e.g. <username>:<password>
new ecrdeploy.ECRDeployment(this, 'DeployDockerImage3', {
  src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'username:password'),
  // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'aws-secrets-manager-secret-name'),
  // src: new ecrdeploy.DockerImageName('javacs3/nginx:latest', 'arn:aws:secretsmanager:us-west-2:000000000000:secret:id'),
  dest: new ecrdeploy.DockerImageName(`${cdk.Aws.ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/my-nginx3:latest`),
}).addToPrincipalPolicy(new iam.PolicyStatement({
  effect: iam.Effect.ALLOW,
  actions: [
    'secretsmanager:GetSecretValue',
  ],
  resources: ['*'],
}));

Sample: test/example.ecr-deployment.ts

# Run the following command to try the sample.
NO_PREBUILT_LAMBDA=1 npx cdk deploy -a "npx ts-node -P tsconfig.dev.json --prefer-ts-exts test/example.ecr-deployment.ts"

API

Tech Details & Contribution

The core of this project relies on containers/image which is used by Skopeo. Please take a look at those projects before contribution.

To support a new docker image source(like docker tarball in s3), you need to implement image transport interface. You could take a look at docker-archive transport for a good start.

To test the lambda folder, make test.

3.0.55

2 days ago

3.0.54

3 days ago

3.0.53

4 days ago

3.0.52

5 days ago

3.0.51

9 days ago

3.0.49

16 days ago

3.0.50

11 days ago

3.0.48

22 days ago

3.0.47

1 month ago

3.0.46

1 month ago

3.0.45

1 month ago

3.0.44

1 month ago

3.0.43

1 month ago

3.0.42

1 month ago

3.0.41

1 month ago

3.0.40

1 month ago

3.0.39

2 months ago

3.0.38

2 months ago

3.0.37

2 months ago

3.0.36

2 months ago

3.0.34

2 months ago

3.0.35

2 months ago

3.0.33

2 months ago

3.0.32

2 months ago

3.0.30

2 months ago

3.0.31

2 months ago

3.0.29

2 months ago

3.0.28

3 months ago

3.0.27

3 months ago

3.0.26

3 months ago

3.0.25

3 months ago

3.0.24

3 months ago

3.0.23

3 months ago

3.0.21

3 months ago

3.0.22

3 months ago

3.0.20

3 months ago

3.0.19

4 months ago

3.0.17

4 months ago

3.0.18

4 months ago

3.0.16

4 months ago

3.0.15

4 months ago

3.0.14

4 months ago

3.0.13

4 months ago

3.0.12

4 months ago

3.0.11

4 months ago

3.0.10

4 months ago

3.0.9

4 months ago

3.0.8

4 months ago

3.0.7

4 months ago

3.0.6

4 months ago

3.0.5

4 months ago

3.0.4

4 months ago

3.0.3

5 months ago

3.0.2

5 months ago

3.0.1

5 months ago

3.0.0

5 months ago

2.5.41

5 months ago

2.5.40

5 months ago

2.5.39

5 months ago

2.5.36

6 months ago

2.5.37

5 months ago

2.5.38

5 months ago

2.5.32

6 months ago

2.5.33

6 months ago

2.5.34

6 months ago

2.5.35

6 months ago

2.5.31

6 months ago

2.5.29

10 months ago

2.5.28

10 months ago

2.5.30

10 months ago

2.5.15

11 months ago

2.5.25

11 months ago

2.5.26

11 months ago

2.5.27

11 months ago

2.5.24

11 months ago

2.5.21

11 months ago

2.5.22

11 months ago

2.5.23

11 months ago

2.5.6

2 years ago

2.5.5

2 years ago

2.5.2

2 years ago

2.5.4

2 years ago

2.5.3

2 years ago

2.4.1

2 years ago

2.4.0

2 years ago

2.4.3

2 years ago

2.4.2

2 years ago

2.4.4

2 years ago

2.5.0

2 years ago

2.5.1

2 years ago

2.3.0

2 years ago

2.3.2

2 years ago

2.3.1

2 years ago

2.2.0

2 years ago

0.0.84

2 years ago

0.0.85

2 years ago

0.0.86

2 years ago

0.0.87

2 years ago

0.0.88

2 years ago

0.0.89

2 years ago

0.0.82

2 years ago

0.0.83

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.7

2 years ago

2.0.6

2 years ago

2.0.9

2 years ago

2.0.8

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

2.1.2

2 years ago

2.1.1

2 years ago

2.1.4

2 years ago

2.1.3

2 years ago

2.0.11

2 years ago

2.0.10

2 years ago

2.1.0

2 years ago

0.0.81

2 years ago

0.0.80

3 years ago

0.0.79

3 years ago

0.0.76

3 years ago

0.0.75

3 years ago

0.0.73

3 years ago

0.0.74

3 years ago

0.0.70

3 years ago

0.0.71

3 years ago

0.0.72

3 years ago

0.0.69

3 years ago

0.0.66

3 years ago

0.0.67

3 years ago

0.0.68

3 years ago

0.0.65

3 years ago

0.0.64

3 years ago

0.0.62

3 years ago

0.0.63

3 years ago

0.0.61

3 years ago

0.0.60

3 years ago

0.0.59

3 years ago

0.0.57

3 years ago

0.0.58

3 years ago

0.0.55

3 years ago

0.0.56

3 years ago

0.0.54

3 years ago

0.0.53

3 years ago

0.0.52

3 years ago

0.0.51

3 years ago

0.0.50

3 years ago

0.0.49

3 years ago

0.0.46

3 years ago

0.0.47

3 years ago

0.0.48

3 years ago

0.0.44

3 years ago

0.0.45

3 years ago

0.0.41

3 years ago

0.0.42

3 years ago

0.0.43

3 years ago

0.0.40

3 years ago

0.0.39

3 years ago

0.0.37

3 years ago

0.0.38

3 years ago

0.0.35

3 years ago

0.0.36

3 years ago

0.0.20

3 years ago

0.0.21

3 years ago

0.0.22

3 years ago

0.0.23

3 years ago

0.0.24

3 years ago

0.0.25

3 years ago

0.0.18

3 years ago

0.0.19

3 years ago

0.0.30

3 years ago

0.0.31

3 years ago

0.0.32

3 years ago

0.0.33

3 years ago

0.0.34

3 years ago

0.0.26

3 years ago

0.0.27

3 years ago

0.0.28

3 years ago

0.0.29

3 years ago

0.0.10

3 years ago

0.0.11

3 years ago

0.0.12

3 years ago

0.0.13

3 years ago

0.0.14

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.3

3 years ago

0.0.1

3 years ago